src/server/util/atomic.h

changeset 444
96d2ba2f28db
parent 162
b169992137a8
--- a/src/server/util/atomic.h	Sun Nov 27 13:33:30 2022 +0100
+++ b/src/server/util/atomic.h	Sun Nov 27 15:58:37 2022 +0100
@@ -36,7 +36,7 @@
 #ifdef __gnu_linux__
 
 #define ws_atomic_inc32(intptr) __sync_fetch_and_add(intptr, 1)
-#define ws_atomic_dec32(intptr) __sync_fetch_and_sub(intptr, 1)
+#define ws_atomic_dec32(intptr) __sync_fetch_and_sub(intptr, 1) - 1
 #define ws_atomic_add32(intptr, val) __sync_fetch_and_add(intptr, val)
 #define ws_atomic_sub32(intptr, val) __sync_fetch_and_sub(intptr, val)
 
@@ -48,7 +48,7 @@
 
 #elif defined(BSD)   
 #define ws_atomic_inc32(intptr) __sync_fetch_and_add(intptr, 1)
-#define ws_atomic_dec32(intptr) __sync_fetch_and_sub(intptr, 1)
+#define ws_atomic_dec32(intptr) __sync_fetch_and_sub(intptr, 1) - 1
 #define ws_atomic_add32(intptr, val) __sync_fetch_and_add(intptr, val)
 #define ws_atomic_sub32(intptr, val) __sync_fetch_and_sub(intptr, va
 #else

mercurial