Explorar o código

atomic: Use __atomic_signal_fence() for SDL_CompilerBarrier()

This is the (slightly) more standard way to accomplish it.
Cameron Gutman hai 2 semanas
pai
achega
d5acd7f123
Modificáronse 1 ficheiros con 2 adicións e 0 borrados
  1. 2 0
      include/SDL3/SDL_atomic.h

+ 2 - 0
include/SDL3/SDL_atomic.h

@@ -156,6 +156,8 @@ extern SDL_DECLSPEC void SDLCALL SDL_UnlockSpinlock(SDL_SpinLock *lock);
  */
 #define SDL_CompilerBarrier() DoCompilerSpecificReadWriteBarrier()
 
+#elif SDL_HAS_BUILTIN(__atomic_signal_fence) || (defined(__GNUC__) && (__GNUC__ >= 5))
+#define SDL_CompilerBarrier()   __atomic_signal_fence(__ATOMIC_SEQ_CST)
 #elif defined(_MSC_VER) && (_MSC_VER > 1200) && !defined(__clang__)
 void _ReadWriteBarrier(void);
 #pragma intrinsic(_ReadWriteBarrier)