[ https://issues.apache.org/jira/browse/STDCXX-1023?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Farid Zaripov closed STDCXX-1023. --------------------------------- Merged in 4.3.x branch and trunk thus: http://svn.apache.org/viewvc?rev=713771&view=rev http://svn.apache.org/viewvc?rev=713770&view=rev > [Windows] Don't use implicit TLS variables in stdcxx library > ------------------------------------------------------------ > > Key: STDCXX-1023 > URL: https://issues.apache.org/jira/browse/STDCXX-1023 > Project: C++ Standard Library > Issue Type: Bug > Components: Thread Safety > Affects Versions: 4.1.2, 4.1.3, 4.1.4, 4.2.0, 4.2.1 > Environment: Windows > Reporter: Farid Zaripov > Assignee: Farid Zaripov > Fix For: 4.2.2 > > > From MSDN: > {noformat} > The Visual C++ compiler supports a syntax that enables you to declare > thread-local variables: > _declspec(thread). If you use this syntax in a DLL, you will not be able to > load the DLL > explicitly using LoadLibrary on versions of Windows prior to Windows Vista. > If your DLL will be > loaded explicitly, you must use the thread local storage functions instead of > _declspec(thread). > {noformat} > Personally, I've got the Access Violation Exception during performing > Boost.Python regression tests, since python.exe process loading the DLL using > LoadLibrary() function. > Since the user could make own DLL, linked against stdcxx statically or > dynamically, and load this DLL using LoadLibrary() function, we should not > use the implicit TLS in stdcxx library to avoid such problems. If we want use > thread local variables in stdcxx, we should use > TlsAlloc()/TlsFree()/TlsGetValue()/TlsSetValue() functions on Windows. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.