diff options
| -rw-r--r-- | src/lock.rs | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/lock.rs b/src/lock.rs index becdfaa..45dd1ad 100644 --- a/src/lock.rs +++ b/src/lock.rs @@ -1,5 +1,6 @@ use std::sync::atomic::{AtomicBool, Ordering}; +/// A dumb lock that's just a wrapper for an [`AtomicBool`]. #[derive(Debug, Default)] pub struct Lock { is_locked: AtomicBool, @@ -13,9 +14,7 @@ impl Lock { } pub fn try_lock(&self) -> bool { - self.is_locked - .compare_exchange_weak(false, true, Ordering::Acquire, Ordering::Relaxed) - .is_ok() + !self.is_locked.fetch_or(true, Ordering::Acquire) } pub fn unlock(&self) { |
