Windows DLLs and TLS

Jakob Ovrum jakobovrum at gmail.com
Mon Oct 8 11:35:58 PDT 2012


On Monday, 8 October 2012 at 18:05:31 UTC, Rainer Schuetze wrote:
> What OS are you running? Implicite TLS for dynamically loaded 
> DLLs is not supported by XP or Sever 2003, so druntime contains 
> a fix to simulate it. (The workaround has the drawback that the 
> DLL cannot be unloaded anymore.)
>
> I'm just speculating, maybe something goes wrong with the 
> tls_index variable, reading TLS variables would then access 
> data from another DLL.
>
> Is your code doing callbacks into the host application in 
> static initializers? With the XP workaround, the runtime 
> initialization "impersonates" all threads that exist before 
> loading the DLL, by switching the TLS-pointer array of the 
> current thread, and that might be unexpected in a callback (but 
> not doing this might produce even more unexpected results).

I'm running Windows 7, and I'm not using any static initializers 
either :(



More information about the Digitalmars-d mailing list