https://bugs.winehq.org/show_bug.cgi?id=45525
Paul Gofman gofmanp@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |gofmanp@gmail.com
--- Comment #20 from Paul Gofman gofmanp@gmail.com --- Created attachment 63109 --> https://bugs.winehq.org/attachment.cgi?id=63109 Test event namespace visibility
I have surfed through the log from comment #3 a bit. It seems like the application goes into infinite wait:
004d:err:ntdll:RtlpWaitForCriticalSection section 0x2c119d8 "?" wait timed out in thread 004d, blocked by 0030, retrying (60 sec) 004c:err:ntdll:RtlpWaitForCriticalSection section 0x2c119f8 "?" wait timed out in thread 004c, blocked by 0030, retrying (60 sec) 004d:err:ntdll:RtlpWaitForCriticalSection section 0x2c119d8 "?" wait timed out in thread 004d, blocked by 0030, retrying (5 min) 004c:err:ntdll:RtlpWaitForCriticalSection section 0x2c119f8 "?" wait timed out in thread 004c, blocked by 0030, retrying (5 min)
Here is the relevant part from the thread 0030 which is seemingly holding the others (the wait in the last line never returns):
------- 0030:Call KERNEL32.OpenEventA(00100000,00000000,5df01310 "__DPHelpStartupEvent__") ret=5df05721 0030:Ret KERNEL32.OpenEventA() retval=00000000 ret=5df05721 0030:Call KERNEL32.CreateProcessA(00000000,5df01328 "dplaysvr.exe",00000000,00000000,00000000,00000020,00000000,00000000,00339894,003398d8) ret=5df0575c 0030:Ret KERNEL32.CreateProcessA() retval=00000001 ret=5df0575c 0030:Call KERNEL32.CreateEventA(00000000,00000001,00000000,5df01310 "__DPHelpStartupEvent__") ret=5df056dc 0030:Ret KERNEL32.CreateEventA() retval=00000184 ret=5df056dc 0030:Call KERNEL32.WaitForSingleObject(00000184,ffffffff) ret=5df056ed -------
And here are the relevant calls from the process created by thread 0030: ----- 004f:Call KERNEL32.CreateEventA(01008560,00000001,00000000,01001278 "Global\__DPHelpStartupEvent__") ret=01002183 004f:Ret KERNEL32.CreateEventA() retval=00000020 ret=01002183
... 004f:Call KERNEL32.SetEvent(00000020) ret=01002312 004f:Ret KERNEL32.SetEvent() retval=00000001 ret=01002312 -----
So the child process signals the event, but apparently the events "Global\__DPHelpStartupEvent__" and "__DPHelpStartupEvent__" are different event objects and signalling the former has no effect on process waiting on the latter. I've made a small test (attached), and according to my testing such event objects are the same under Windows XP but different on Vista+.
So the question is, does this work, e, g, on Windows 7? If no, this event visibility thing is most likely the cause of the issue observed.