From 5468353c96907ec51ee2889523157de6a36001a9 Mon Sep 17 00:00:00 2001 From: koushiro Date: Wed, 28 Feb 2024 19:22:46 +0800 Subject: [PATCH] fix(metrics): :impl Atomic for AtomicU64 fix the error when using Gauge type, revert the `impl Atomic fro AtomicU64` from #105 Signed-off-by: koushiro --- src/metrics/gauge.rs | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/metrics/gauge.rs b/src/metrics/gauge.rs index 98671280..6b260bcd 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 {