fixme:pthread_kill_other_threads

eric pouech eric.pouech at wanadoo.fr
Fri Sep 28 11:00:23 CDT 2001


Andreas Mohr wrote:
> 
> On Fri, Sep 28, 2001 at 11:16:40AM +0200, Eric Pouech wrote:
> > >    51145 096d4e18:Call x11drv.MsgWaitForMultipleObjectsEx(00000001,403faec4,ffffffff,00000000,00000000) ret=406c7efd
> > can you check that at this point (DWORD*)0x403faec4 points to the handle of the event created above ? (0x7C IIRC)
> > if it's the case, it means that the started program rely on some messages order to do some stuff
> > the expected behavior would be for the second program to set the event (7c) under certain circumstances, which shall be triggered from a given message...
> Nope (or maybe I don't get your point).
> Most probably it's the standard CreateProcess(), WaitForSingleObject() combo
> to wait for successful program execution or so (which gets confirmed by the
> close address range between these two function calls).
well, if I analyse the trace:
    1844 08068938:Call
kernel32.CreateEventA(00000000,00000001,00000000,100192a0 "TKMESG
response trigger") ret=100168c1
    1845 08068938:Ret  kernel32.CreateEventA() retval=0000007c
ret=100168c1
...
   51123 08068938:Call kernel32.ResetEvent(0000007c) ret=100169fd
   51124 08068938:Ret  kernel32.ResetEvent() retval=00000001
ret=100169fd
+++ 0x7C is a handle to an event (and still valid at this point)

   51125 08068938:Call kernel32.CreateProcessA(00000000,10019364
"tkwdog.exe",00000000,00000000,00000000,04000000,00000000,00000000,405f6b7c,405f6b6c)
ret=10016a23
   51126 fixme:module:CreateProcessA
(D:\cae\pasic90\scs\TKWDOG.EXE,...): CREATE_DEFAULT_ERROR_MODE ignored
   51127 fixme:pthread_kill_other_threads_np
   51128 FIXME:pthread_rwlock_rdlock
   51129 FIXME:pthread_rwlock_unlock
   51130 FIXME:pthread_rwlock_rdlock
   51131 FIXME:pthread_rwlock_unlock
   51132 08068938:Ret  kernel32.CreateProcessA() retval=00000001
ret=10016a23
   51133 08068938:Call kernel32.WaitForSingleObject(0000007c,ffffffff)
ret=10016a4d
+++ the process that called CreateProcess waits on 0x7C, which is still
the event above, and not
    a process handle, and then blocks forever
   51134 096d4e18:Ret  x11drv.MsgWaitForMultipleObjectsEx()
retval=00000001 ret=406c7efd
   51135 096d4e18:Call
x11drv.MsgWaitForMultipleObjectsEx(00000000,00000000,00000000,00000000,00000000)
ret=406c7b80
   51136 096d4e18:Ret  x11drv.MsgWaitForMultipleObjectsEx()
retval=00000102 ret=406c7b80
   51137 096d4e18:Call window proc 0x40a134e0
(hwnd=00010020,msg=WM_NCHITTEST,wp=00000000,lp=010b01ac)
   51138 096d4e18:Ret  window proc 0x40a134e0
(hwnd=00010020,msg=WM_NCHITTEST,wp=00000000,lp=010b01ac) retval=00000001
   51139 096d4e18:Call window proc 0x40a134e0
(hwnd=00010020,msg=WM_SETCURSOR,wp=00010020,lp=02000001)
   51140 096d4e18:Ret  window proc 0x40a134e0
(hwnd=00010020,msg=WM_SETCURSOR,wp=00010020,lp=02000001) retval=00000276
   51141 096d4e18:Call window proc 0x40a134e0
(hwnd=00010020,msg=WM_MOUSEMOVE,wp=00000000,lp=010b01ac)
   51142 096d4e18:Ret  window proc 0x40a134e0
(hwnd=00010020,msg=WM_MOUSEMOVE,wp=00000000,lp=010b01ac) retval=00000000
   51143 096d4e18:Call
x11drv.MsgWaitForMultipleObjectsEx(00000000,00000000,00000000,00000000,00000000)
ret=406c7b80
   51144 096d4e18:Ret  x11drv.MsgWaitForMultipleObjectsEx()
retval=00000102 ret=406c7b80
   51145 096d4e18:Call
x11drv.MsgWaitForMultipleObjectsEx(00000001,403faec4,ffffffff,00000000,00000000)
ret=406c7efd

so I assume that thread 096d4e18 (in line 51145) should wait on a
specific object too

however, what I don't know is what 096d4e18 is (thread of same process
or newly created thread). looks more like
and old thread but...
on the other hand, since createprocess is called without the inherit
flag and that no argument are given on
the command line, the newly created process shouldn't wait on this event
(0x7C), unless it opens the event
with its name (Uwe, is there something like that after line 51145 ?), or
there's a mess in message sending/processing
(or wait for a window creation) that doesn't take place

A+
-- 
---------------
Eric Pouech (http://perso.wanadoo.fr/eric.pouech/)
"The future will be better tomorrow", Vice President Dan Quayle




More information about the wine-devel mailing list