diff options
| author | Botahamec <botahamec@outlook.com> | 2022-10-27 17:44:57 -0400 |
|---|---|---|
| committer | Botahamec <botahamec@outlook.com> | 2022-10-27 17:44:57 -0400 |
| commit | 8ad769586382899033fcc55a669028c8af7d21a9 (patch) | |
| tree | f1da420dbd2db8cede8942df9f5c95acb1fa0b19 /src | |
| parent | d2c3a6c6688685d466b69df94d610948d8657c31 (diff) | |
Switch to an or instruction
Diffstat (limited to 'src')
| -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) { |
