src/server/util/atomic.h

changeset 109
8a0a7754f123
parent 69
4a10bc0ee80d
child 161
aadda87bad1b
equal deleted inserted replaced
108:2a394ccdd778 109:8a0a7754f123
44 #include <libkern/OSAtomic.h> 44 #include <libkern/OSAtomic.h>
45 45
46 #define ws_atomic_inc32(intptr) OSAtomicIncrement32((volatile int32_t *)intptr) 46 #define ws_atomic_inc32(intptr) OSAtomicIncrement32((volatile int32_t *)intptr)
47 #define ws_atomic_dec32(intptr) OSAtomicDecrement32((volatile int32_t *)intptr) 47 #define ws_atomic_dec32(intptr) OSAtomicDecrement32((volatile int32_t *)intptr)
48 48
49 49 #elif defined(BSD)
50 #define ws_atomic_inc32(intptr) __sync_fetch_and_add(intptr, 1)
51 #define ws_atomic_dec32(intptr) __sync_fetch_and_sub(intptr, 1)
52 #define ws_atomic_add32(intptr, val) __sync_fetch_and_add(intptr, val)
53 #define ws_atomic_sub32(intptr, val) __sync_fetch_and_sub(intptr, va
50 #else 54 #else
51 // use atomic.h 55 // use atomic.h
52 #include <atomic.h> 56 #include <atomic.h>
53 57
54 #define ws_atomic_inc32(intptr) atomic_inc_32_nv(intptr) 58 #define ws_atomic_inc32(intptr) atomic_inc_32_nv(intptr)

mercurial