From c63d6e516f406573e12775017822963aa8cda901 Mon Sep 17 00:00:00 2001 From: Love Hornquist Astrand Date: Fri, 9 Sep 2011 10:03:28 +0200 Subject: [PATCH] use __sync_swap if we have it --- base/baselocl.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/base/baselocl.h b/base/baselocl.h index 901e8606f..4eb6cb87a 100644 --- a/base/baselocl.h +++ b/base/baselocl.h @@ -68,7 +68,15 @@ #define heim_base_atomic_type unsigned int #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)) +#endif #elif defined(_WIN32)