aboutsummaryrefslogtreecommitdiffstats
path: root/erts/include/internal/ethread.h
diff options
context:
space:
mode:
authorRickard Green <rickard@erlang.org>2010-12-10 16:52:27 +0100
committerRickard Green <rickard@erlang.org>2010-12-14 16:58:41 +0100
commit165f5ba45e128252a677facf82a6e4c1cb3f272d (patch)
tree234b22338b02249394f99915ceb4e08db117a737 /erts/include/internal/ethread.h
parent267a5e7f6e0d578b3c9224fb87b78f76a9300c87 (diff)
downloadotp-165f5ba45e128252a677facf82a6e4c1cb3f272d.tar.gz
otp-165f5ba45e128252a677facf82a6e4c1cb3f272d.tar.bz2
otp-165f5ba45e128252a677facf82a6e4c1cb3f272d.zip
Add support for 64-bit atomics on Windows
Diffstat (limited to 'erts/include/internal/ethread.h')
-rw-r--r--erts/include/internal/ethread.h14
1 files changed, 10 insertions, 4 deletions
diff --git a/erts/include/internal/ethread.h b/erts/include/internal/ethread.h
index c32ea42a92..84554d2d77 100644
--- a/erts/include/internal/ethread.h
+++ b/erts/include/internal/ethread.h
@@ -167,14 +167,20 @@ typedef pthread_key_t ethr_tsd_key;
#endif
#if defined(_MSC_VER)
-#if ETHR_SIZEOF_PTR == 4
+
#define ETHR_HAVE_INT_T 1
-typedef LONG ethr_sint_t;
-typedef ULONG ethr_uint_t;
+#if ETHR_SIZEOF_LONG == ETHR_SIZEOF_PTR
+typedef long ethr_sint_t;
+typedef unsigned long ethr_uint_t;
+#elif ETHR_SIZEOF___INT64 == ETHR_SIZEOF_PTR
+typedef __int64 ethr_sint_t;
+typedef unsigned __int64 ethr_uint_t;
#else
-#error "Only 32-bit windows is supported"
+#error "No integer type of the same size as pointers found"
#endif
+
#endif
+
struct ethr_join_data_;
/* Types */