fixme:pthread_kill_other_threads
Uwe Bonnes
bon at elektron.ikp.physik.tu-darmstadt.de
Fri Sep 28 03:18:43 CDT 2001
>>>>> "Dan" == Dan Kegel <dank at kegel.com> writes:
Dan> Uwe Bonnes wrote:
>> I don't understand why pthread_kill_other_threads ist called when a
>> programm creates a new process. With the pthread_kill_other_threads
>> call, the starting process dies. ... What can happen between chdir()
>> and execve() to trigger the pthread_kill_other_threads() call?
Dan> This is per the Posix standard;
Dan> http://www.opengroup.org/onlinepubs/007908799/xsh/exec.html says:
Dan> "A call to any exec function from a process with more than one
Dan> thread results in all threads being terminated and the new
Dan> executable image being loaded and executed."
Dan> Maybe this is hurting you because LinuxThreads implements fork() in
Dan> a nonstandard way, i.e. maybe it only forks the current thread
Dan> rather than the whole process?
Dan> In any case, what you're trying to do is so common and important
Dan> that maybe it's a glibc bug. Which glibc and kernel are you using?
I am trying to run a windows program combo ( schem.exe from the quicklogic
qworks 9.0 beta). The programm starts, tells about the demo license and then
starts a "background" process called tkwdog.exe, as I understand it.
After the background programm pops up its desktop window, the schem.exe
window isn't refreshed any more. I thought this would relate to
pthread_kill_other_threads_np, but obviously I am wrong. schem.exe hangs in
a WaitForSingleObject call:
Here again an excerpt from the relay log, hopefully more helpfull:
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
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
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
There is no more message from process 08068938 until I abort the program
with ^C on the console.
Bye
--
Uwe Bonnes bon at elektron.ikp.physik.tu-darmstadt.de
Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt
--------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------
More information about the wine-devel
mailing list