Am 11.10.2010 00:16, schrieb Bernd Kreuss:
from rtl/win/syswin.inc:DLL_THREAD_ATTACH : begin inclocked(Thread_count); WinEnterCriticalSection(AttachingThread); if Win32GetCurrentThreadId<> MainThreadIdWin32 then begin { Allocate Threadvars } SysAllocateThreadVars; { NS : no idea what is correct to pass here - pass dummy value for now } { passing a dummy is ok, the correct value is read from the coff header of SysInstance (FK) } InitThread($1000000); { Assume everything is idempotent there, as the thread could have been created with BeginThread... } end; if assigned(Dll_Thread_Attach_Hook) then Dll_Thread_Attach_Hook(DllParam); Dll_entry:=true; { return value is ignored } WinLeaveCriticalSection(AttachingThread); end;will this also work when some object in my own dll is starting a thread with TThread that is already properly initialized or will it then try to initialize it twice?
Although you've said that you've found the problem: yes, that is a concern that occured to me as well after I reported the problem of the AttachingThread critical section. I'll need to look into it what problems there really could arise and how it might be fixed.
Regards, Sven _______________________________________________ fpc-pascal maillist - [email protected] http://lists.freepascal.org/mailman/listinfo/fpc-pascal
