msi: add dummy thread just to initialize an MTA; fixes bug 18070
Hans Leidekker
hans at codeweavers.com
Sun Jun 21 10:13:39 CDT 2009
Hi Dan,
> +/* Dummy thread just to initialize an MTA for the benefit of custom action DLLs */
> +static HANDLE dummy_thread_event = NULL;
> +static HANDLE dummy_thread_handle = NULL;
> +
> +DWORD WINAPI dummy_thread_proc(void *arg)
It appears that calling CreateThread in DLL_PROCESS_ATTACH can cause
deadlocks:
http://blogs.msdn.com/mgrier/archive/2005/06/21/431378.aspx
It might work if you move it to somewhere near ACTION_CallDllFunction,
and wait for the thread to start up, but this remains a hack of course.
Another blog explains that inheritance of an existing MTA is just a
side effect of starting the custom action in a different process, one
that happens to have initialized an MTA already.
-Hans
More information about the wine-devel
mailing list