mirror of
https://github.com/autc04/Retro68.git
synced 2024-11-30 04:54:52 +00:00
25 lines
642 B
C
25 lines
642 B
C
|
/* Avoiding the synchronizations are a good thing. */
|
||
|
#define WANT_SPECIALCASE_RELAXED
|
||
|
#define WANT_SPECIALCASE_ACQREL
|
||
|
|
||
|
/* Glibc, at least, uses lwsync (aka acq_rel) in its pthread mutex
|
||
|
implementation. If the user is asking for seq_cst (aka hwsync),
|
||
|
this is insufficient. */
|
||
|
|
||
|
static inline void __attribute__((always_inline, artificial))
|
||
|
pre_seq_barrier(int model)
|
||
|
{
|
||
|
if (model == __ATOMIC_SEQ_CST)
|
||
|
__atomic_thread_fence (__ATOMIC_SEQ_CST);
|
||
|
}
|
||
|
|
||
|
static inline void __attribute__((always_inline, artificial))
|
||
|
post_seq_barrier(int model)
|
||
|
{
|
||
|
pre_seq_barrier(model);
|
||
|
}
|
||
|
|
||
|
#define pre_post_seq_barrier 1
|
||
|
|
||
|
#include_next <host-config.h>
|