aeron_rs/concurrent/atomics.rs
1use std::sync::atomic;
2
3// todo: this is the generic impl, specialize for x64
4
5#[inline]
6pub fn thread_fence() {
7 atomic::fence(atomic::Ordering::AcqRel)
8}
9
10#[inline]
11pub fn fence() {
12 atomic::fence(atomic::Ordering::SeqCst)
13}
14
15#[inline]
16pub fn acquire() {
17 atomic::fence(atomic::Ordering::Acquire)
18}
19
20#[inline]
21pub fn release() {
22 atomic::fence(atomic::Ordering::Release)
23}
24
25#[inline]
26pub fn cpu_pause() {
27 ::std::thread::yield_now();
28}