title | description | ms.date | f1_keywords | helpviewer_keywords | ms.assetid | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
/GT (Support fiber-safe thread-local storage) |
The MSVC compiler option /GT enables safe optimizations for thread-local storage data. |
07/08/2020 |
|
|
071fec79-c701-432b-9970-457344133159 |
Supports fiber safety for data allocated using static thread-local storage, that is, data allocated with __declspec(thread)
.
/GT
Data declared with __declspec(thread)
is referenced through a thread-local storage (TLS) array. The TLS array is an array of addresses that the system maintains for each thread. Each address in this array gives the location of thread-local storage data.
A fiber is a lightweight object that consists of a stack and a register context and can be scheduled on various threads. A fiber can run on any thread. Because a fiber may get swapped out and restarted later on a different thread, the compiler mustn't cache the address of the TLS array, or optimize it as a common subexpression across a function call. /GT
prevents such optimizations.
-
Open the project's Property Pages dialog box. For details, see Set C++ compiler and build properties in Visual Studio.
-
Select the Configuration Properties > C/C++ > Optimization property page.
-
Modify the Enable Fiber-safe Optimizations property.
- See xref:Microsoft.VisualStudio.VCProjectEngine.VCCLCompilerTool.EnableFiberSafeOptimizations%2A.