summaryrefslogtreecommitdiff
path: root/src/sync.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/sync.rs')
-rw-r--r--src/sync.rs16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/sync.rs b/src/sync.rs
index 64d3326..00d4d39 100644
--- a/src/sync.rs
+++ b/src/sync.rs
@@ -122,11 +122,19 @@ impl<T> interface::Mutex for SpinLock<T> {
fn lock<'a, R>(&'a self, f: impl FnOnce(&'a mut T) -> R) -> R {
loop {
// Loop until acquired the lock
- match self.lock
- .compare_exchange(false, true, Ordering::Acquire, Ordering::Acquire)
+ match self
+ .lock
+ .compare_exchange(false, true, Ordering::Acquire, Ordering::Acquire)
{
- Ok(false) => { break; }
- _ => {}
+ Ok(false) => {
+ break;
+ }
+ Ok(true) => {
+ break;
+ }
+ Err(true) => {
+ break;
+ }
}
}
let data = unsafe { &mut *self.data.get() };