Check out my first novel, midnight's simulacra!
Thread-Local Storage
From dankwiki
C99
- ISO/IEC 9899:1999 is amended by gcc and others to introduce the __thread storage specifier (§6.2.4, §6.4.1, §6.7.1), and to add a vague definition of threads to the execution model (§5.1.2).
C++11
- C++11 adds the thread_local keyword
- Only constant initializers can be used for variables having __thread storage.
Windows
- __declspec(thread) doesn't work in DLL's prior to Vista when loaded via LoadLibrary().
- The DLL must be linked into the binary before the binary's main image is loaded.
See Also
- pthreads
- Ulrich Drepper's paper, "ELF Handling for Thread-Local Storage"
- gcc's Info entry for TLS
- "C and C++ Thread Compatibility", ISO/IEC JTC1 SC22 WG14 N1423 (Lawrence Crowl)