summaryrefslogtreecommitdiff
path: root/include/private/gc_locks.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/private/gc_locks.h')
-rw-r--r--include/private/gc_locks.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/include/private/gc_locks.h b/include/private/gc_locks.h
index 964182af..6507609b 100644
--- a/include/private/gc_locks.h
+++ b/include/private/gc_locks.h
@@ -91,7 +91,14 @@
# define NUMERIC_THREAD_ID(id) ((unsigned long)(id))
# define THREAD_EQUAL(id1, id2) ((id1) == (id2))
# define NUMERIC_THREAD_ID_UNIQUE
-# else
+# elif defined(__WINPTHREADS_VERSION_MAJOR) /* winpthreads */
+# define NUMERIC_THREAD_ID(id) ((unsigned long)(id))
+# define THREAD_EQUAL(id1, id2) ((id1) == (id2))
+# ifndef _WIN64
+ /* NUMERIC_THREAD_ID is 32-bit and not unique on Win64. */
+# define NUMERIC_THREAD_ID_UNIQUE
+# endif
+# else /* pthreads-win32 */
# define NUMERIC_THREAD_ID(id) ((unsigned long)(id.p))
/* Using documented internal details of pthreads-win32 library. */
/* Faster than pthread_equal(). Should not change with */