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 :(