aboutsummaryrefslogtreecommitdiff
path: root/src/platform
diff options
context:
space:
mode:
authorCody Piersall <cody@arrc.ou.edu>2020-01-02 20:09:19 -0600
committerGarrett D'Amore <garrett@damore.org>2020-01-02 18:09:19 -0800
commit60198afcb25766a5ca060c9d3c368c4d37ad40da (patch)
tree8432046c5461217ab91d7e844cb2f22cf11508b4 /src/platform
parent67dc8e0063986da4798b0bcf2949178d6184e266 (diff)
downloadnng-60198afcb25766a5ca060c9d3c368c4d37ad40da.tar.gz
nng-60198afcb25766a5ca060c9d3c368c4d37ad40da.tar.bz2
nng-60198afcb25766a5ca060c9d3c368c4d37ad40da.zip
Fixes broken win32 build. (#1092)
When using the 32-bit Windows compiler, the functions InterlockedIncrementAcquire64() and and InterlockedDecrementRelease64() are not defined. So we fall back to the more generic InterlockedAcquire64() and InterlockedDecrement64() on 32-bit Windows.
Diffstat (limited to 'src/platform')
-rw-r--r--src/platform/windows/win_thread.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/platform/windows/win_thread.c b/src/platform/windows/win_thread.c
index 763dcf7f..70ba73cb 100644
--- a/src/platform/windows/win_thread.c
+++ b/src/platform/windows/win_thread.c
@@ -196,13 +196,21 @@ nni_atomic_init64(nni_atomic_u64 *v)
void
nni_atomic_inc64(nni_atomic_u64 *v)
{
+#ifdef _WIN64
(void) InterlockedIncrementAcquire64(&v->v);
+#else
+ (void) InterlockedIncrement64(&v->v);
+#endif
}
uint64_t
nni_atomic_dec64_nv(nni_atomic_u64 *v)
{
+#ifdef _WIN64
return ((uint64_t)(InterlockedDecrementRelease64(&v->v)));
+#else
+ return ((uint64_t)(InterlockedDecrement64(&v->v)));
+#endif
}
static unsigned int __stdcall nni_plat_thr_main(void *arg)