21 Jun
2009
21 Jun
'09
10:13 a.m.
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