diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2022-05-11 10:25:47 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2022-05-11 10:56:09 +0200 |
commit | 30c675400f56e6d4636e8f8f2b347655581613da (patch) | |
tree | 2bf0b2b1b25ad90db43b8749c59d7b197389687d /libbutl/ft | |
parent | ea2b4fb4935627e4dea48f193eeb0019155a3abe (diff) |
Restrict to only using __thread with own C++14 threads implementation
Diffstat (limited to 'libbutl/ft')
-rw-r--r-- | libbutl/ft/lang.hxx | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/libbutl/ft/lang.hxx b/libbutl/ft/lang.hxx index 567f5a4..82971d2 100644 --- a/libbutl/ft/lang.hxx +++ b/libbutl/ft/lang.hxx @@ -7,9 +7,14 @@ // __cpp_thread_local (extension) // // If this macro is undefined then one may choose to fallback to __thread. -// Note, however, that it only for values that do not require dynamic +// Note, however, that it only works for values that do not require dynamic // (runtime) initialization. // +// Note that thread_local with dynamic allocation/destruction appears to be +// broken when we use our own implementation of C++14 threads on MinGW. So +// we restrict ourselves to __thread which appears to be functioning, at +// least in the POSIX threads GCC configuration. +// #ifndef __cpp_thread_local // // Apparently Apple's Clang "temporarily disabled" C++11 thread_local until @@ -20,7 +25,7 @@ # if __apple_build_version__ >= 8000000 # define __cpp_thread_local 201103 # endif -# else +# elif !defined(LIBBUTL_MINGW_STDTHREAD) # define __cpp_thread_local 201103 # endif #endif |