mirror of
https://github.com/postgres/postgres.git
synced 2025-07-27 12:41:57 +03:00
Replace ia64 S_UNLOCK compiler barrier with a full memory barrier.
_Asm_sched_fence() is just a compiler barrier, not a memory barrier. But spinlock release on IA64 needs, at the very least, release semantics. Use a full barrier instead. This might be the cause for the occasional failures on buildfarm member anole. Discussion: 20150629101108.GB17640@alap3.anarazel.de
This commit is contained in:
@ -806,7 +806,7 @@ typedef unsigned int slock_t;
|
||||
/* On IA64, it's a win to use a non-locking test before the xchg proper */
|
||||
#define TAS_SPIN(lock) (*(lock) ? 1 : TAS(lock))
|
||||
#define S_UNLOCK(lock) \
|
||||
do { _Asm_sched_fence(); (*(lock)) = 0; } while (0)
|
||||
do { _Asm_mf(); (*(lock)) = 0; } while (0)
|
||||
|
||||
#endif /* HPUX on IA64, non gcc */
|
||||
|
||||
|
Reference in New Issue
Block a user