From 77468ae3b0296eaa12a1c14b3abb44d0b3fb5ce6 Mon Sep 17 00:00:00 2001 From: Riley Date: Mon, 31 Jan 2022 03:06:02 -0600 Subject: [PATCH] metrics: add `fetch_add` for `AtomicU64` (#4453) --- tokio/src/loom/std/atomic_u64.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tokio/src/loom/std/atomic_u64.rs b/tokio/src/loom/std/atomic_u64.rs index 8ea6bd403..113992d97 100644 --- a/tokio/src/loom/std/atomic_u64.rs +++ b/tokio/src/loom/std/atomic_u64.rs @@ -34,6 +34,13 @@ cfg_not_has_atomic_u64! { *self.inner.lock() = val; } + pub(crate) fn fetch_add(&self, val: u64, _: Ordering) -> u64 { + let mut lock = self.inner.lock(); + let prev = *lock; + *lock = prev + val; + prev + } + pub(crate) fn fetch_or(&self, val: u64, _: Ordering) -> u64 { let mut lock = self.inner.lock(); let prev = *lock;