|
@@ -192,20 +192,13 @@ void SDL_AtomicUnlock(SDL_SpinLock *lock)
|
|
|
#elif defined(_MSC_VER) && (defined(_M_ARM) || defined(_M_ARM64) || defined(_M_ARM64EC))
|
|
#elif defined(_MSC_VER) && (defined(_M_ARM) || defined(_M_ARM64) || defined(_M_ARM64EC))
|
|
|
_InterlockedExchange_rel(lock, 0);
|
|
_InterlockedExchange_rel(lock, 0);
|
|
|
|
|
|
|
|
-#elif defined(_MSC_VER)
|
|
|
|
|
- _ReadWriteBarrier();
|
|
|
|
|
- *lock = 0;
|
|
|
|
|
-
|
|
|
|
|
-#elif defined(__WATCOMC__) && defined(__386__)
|
|
|
|
|
- SDL_CompilerBarrier();
|
|
|
|
|
- *lock = 0;
|
|
|
|
|
-
|
|
|
|
|
#elif defined(__SOLARIS__)
|
|
#elif defined(__SOLARIS__)
|
|
|
/* Used for Solaris when not using gcc. */
|
|
/* Used for Solaris when not using gcc. */
|
|
|
- *lock = 0;
|
|
|
|
|
membar_producer();
|
|
membar_producer();
|
|
|
|
|
+ *lock = 0;
|
|
|
|
|
|
|
|
#else
|
|
#else
|
|
|
|
|
+ SDL_MemoryBarrierRelease();
|
|
|
*lock = 0;
|
|
*lock = 0;
|
|
|
#endif
|
|
#endif
|
|
|
}
|
|
}
|