ole32: Avoid a deadlock when a being loaded DLL calls CoRegisterClassObject from its DLL_PROCESS_ATTACH handler.

Dmitry Timoshkov dmitry at baikal.ru
Thu Feb 7 02:29:58 CST 2013


The patch originally has been created by Alexander Morozov, and
I've found it while trying to fix a similar problem.

CoRegisterClassObject calls RPC_StartLocalServer which creates
a thread, and does an infinite wait on its handle in order to allow
the thread finish creating a pipe. This leads to a deadlock in
the PE loader's 'loader_section'. The wait could be avoided by
moving the CreateNamedPipeW call out of the thread proc.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-ole32-Do-not-wait-for-a-thread.patch
Type: text/x-diff
Size: 4004 bytes
Desc: not available
URL: <http://www.winehq.org/pipermail/wine-patches/attachments/20130207/40d6de0c/attachment.patch>

More information about the wine-patches mailing list