diff --git a/src/metrics/gauge.rs b/src/metrics/gauge.rs index 9867128..6b260bc 100644 --- a/src/metrics/gauge.rs +++ b/src/metrics/gauge.rs @@ -187,6 +187,33 @@ impl Atomic for AtomicI32 { } } +#[cfg(not(any(target_arch = "mips", target_arch = "powerpc")))] +impl Atomic for AtomicU64 { + fn inc(&self) -> u64 { + self.inc_by(1) + } + + fn inc_by(&self, v: u64) -> u64 { + self.fetch_add(v, Ordering::Relaxed) + } + + fn dec(&self) -> u64 { + self.dec_by(1) + } + + fn dec_by(&self, v: u64) -> u64 { + self.fetch_sub(v, Ordering::Relaxed) + } + + fn set(&self, v: u64) -> u64 { + self.swap(v, Ordering::Relaxed) + } + + fn get(&self) -> u64 { + self.load(Ordering::Relaxed) + } +} + #[cfg(not(any(target_arch = "mips", target_arch = "powerpc")))] impl Atomic for AtomicU64 { fn inc(&self) -> f64 {