diff -r ef3c8a0e1fee -r 96d2ba2f28db src/server/util/atomic.h --- 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