Summary: [regression 2.051] DLL multi-threading broken
           Product: D
           Version: D2
          Platform: Other
        OS/Version: Windows
            Status: NEW
          Keywords: patch
          Severity: regression
          Priority: P2
         Component: druntime

--- Comment #0 from Rainer Schuetze <> 2010-12-28 00:26:52 
PST ---
With the modified circular dependency detection, thread initialization in DLLs
no longer works. This happens because the variable _moduleinfo_tlsdtors_i is
used to check whether TLS has been initialized, but it is now declared shared.

Here's a patch that does no longer rely on this variable:

Left file: C:\l\dmd-2.051\src\druntime\src\core\dll_helper.d
Right file: C:\l\dmd-2.051\src\druntime\src\core\
<         static bool tlsCtorRun;
<         static this() { tlsCtorRun = true; }
<         if( initTls && !tlsCtorRun ) // avoid duplicate calls
>         if( initTls && !_moduleinfo_tlsdtors_i ) // avoid duplicate calls

Configure issuemail:
------- You are receiving this mail because: -------

Reply via email to