File tree 2 files changed +6
-4
lines changed
2 files changed +6
-4
lines changed Original file line number Diff line number Diff line change @@ -105,7 +105,7 @@ namespace moodycamel { namespace details {
105
105
static const thread_id_t invalid_thread_id2 = 0xFFFFFFFFU ; // Not technically guaranteed to be invalid, but is never used in practice. Note that all Win32 thread IDs are presently multiples of 4.
106
106
static inline thread_id_t thread_id () { return static_cast <thread_id_t >(::GetCurrentThreadId ()); }
107
107
} }
108
- #elif defined(__arm__) || defined(_M_ARM) || defined(__aarch64__) || (defined(__APPLE__) && TARGET_OS_IPHONE) || defined(MOODYCAMEL_NO_THREAD_LOCAL)
108
+ #elif defined(__arm__) || defined(_M_ARM) || defined(__aarch64__) || (defined(__APPLE__) && TARGET_OS_IPHONE) || defined(__MVS__) || defined( MOODYCAMEL_NO_THREAD_LOCAL)
109
109
namespace moodycamel { namespace details {
110
110
static_assert (sizeof (std::thread::id) == 4 || sizeof (std::thread::id) == 8 , " std::thread::id is expected to be either 4 or 8 bytes" );
111
111
@@ -217,7 +217,7 @@ namespace moodycamel { namespace details {
217
217
// VS2013 doesn't support `thread_local`, and MinGW-w64 w/ POSIX threading has a crippling bug: http://sourceforge.net/p/mingw-w64/bugs/445
218
218
// g++ <=4.7 doesn't support thread_local either.
219
219
// Finally, iOS/ARM doesn't have support for it either, and g++/ARM allows it to compile but it's unconfirmed to actually work
220
- #if (!defined(_MSC_VER) || _MSC_VER >= 1900) && (!defined(__MINGW32__) && !defined(__MINGW64__) || !defined(__WINPTHREADS_VERSION)) && (!defined(__GNUC__) || __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)) && (!defined(__APPLE__) || !TARGET_OS_IPHONE) && !defined(__arm__) && !defined(_M_ARM) && !defined(__aarch64__)
220
+ #if (!defined(_MSC_VER) || _MSC_VER >= 1900) && (!defined(__MINGW32__) && !defined(__MINGW64__) || !defined(__WINPTHREADS_VERSION)) && (!defined(__GNUC__) || __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)) && (!defined(__APPLE__) || !TARGET_OS_IPHONE) && !defined(__arm__) && !defined(_M_ARM) && !defined(__aarch64__) && !defined(__MVS__)
221
221
// Assume `thread_local` is fully supported in all other C++11 compilers/platforms
222
222
#define MOODYCAMEL_CPP11_THREAD_LOCAL_SUPPORTED // tentatively enabled for now; years ago several users report having problems with it on
223
223
#endif
Original file line number Diff line number Diff line change @@ -24,6 +24,8 @@ extern "C" {
24
24
}
25
25
#elif defined(__MACH__)
26
26
#include < mach/mach.h>
27
+ #elif defined(__MVS__)
28
+ #include < zos-semaphore.h>
27
29
#elif defined(__unix__)
28
30
#include < semaphore.h>
29
31
@@ -165,9 +167,9 @@ class Semaphore
165
167
}
166
168
}
167
169
};
168
- #elif defined(__unix__)
170
+ #elif defined(__unix__) || defined(__MVS__)
169
171
// ---------------------------------------------------------
170
- // Semaphore (POSIX, Linux)
172
+ // Semaphore (POSIX, Linux, zOS )
171
173
// ---------------------------------------------------------
172
174
class Semaphore
173
175
{
You can’t perform that action at this time.
0 commit comments