use __sync_swap if we have it
This commit is contained in:
@@ -68,7 +68,15 @@
|
|||||||
#define heim_base_atomic_type unsigned int
|
#define heim_base_atomic_type unsigned int
|
||||||
#define heim_base_atomic_max UINT_MAX
|
#define heim_base_atomic_max UINT_MAX
|
||||||
|
|
||||||
|
#ifndef __has_builtin
|
||||||
|
#define __has_builtin(x) 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if __has_builtin(__sync_swap)
|
||||||
|
#define heim_base_exchange_pointer(t,v) __sync_swap((t), (v))
|
||||||
|
#else
|
||||||
#define heim_base_exchange_pointer(t,v) __sync_lock_test_and_set((t), (v))
|
#define heim_base_exchange_pointer(t,v) __sync_lock_test_and_set((t), (v))
|
||||||
|
#endif
|
||||||
|
|
||||||
#elif defined(_WIN32)
|
#elif defined(_WIN32)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user