diff options
Diffstat (limited to 'source/blender/blenlib/BLI_threads.h')
-rw-r--r-- | source/blender/blenlib/BLI_threads.h | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/source/blender/blenlib/BLI_threads.h b/source/blender/blenlib/BLI_threads.h index 03fe27c10ed..920a0a8f650 100644 --- a/source/blender/blenlib/BLI_threads.h +++ b/source/blender/blenlib/BLI_threads.h @@ -28,10 +28,6 @@ #include "BLI_sys_types.h" -#ifdef __APPLE__ -# include <libkern/OSAtomic.h> -#endif - #ifdef __cplusplus extern "C" { #endif @@ -100,10 +96,18 @@ void BLI_mutex_unlock(ThreadMutex *mutex); /* Spin Lock */ -#if defined(__APPLE__) -typedef OSSpinLock SpinLock; +/* By default we use TBB for spin lock on all platforms. When building without + * TBB fall-back to spin lock implementation which is native to the platform. + * + * On macOS we use mutex lock instead of spin since the spin lock has been + * deprecated in SDK 10.12 and is discouraged from use. */ + +#ifdef WITH_TBB +typedef uint32_t SpinLock; +#elif defined(__APPLE__) +typedef ThreadMutex SpinLock; #elif defined(_MSC_VER) -typedef volatile int SpinLock; +typedef volatile unsigned int SpinLock; #else typedef pthread_spinlock_t SpinLock; #endif |