diff options
| author | Mica White <botahamec@outlook.com> | 2024-03-14 21:39:37 -0400 |
|---|---|---|
| committer | Mica White <botahamec@outlook.com> | 2024-03-14 21:39:37 -0400 |
| commit | edbb480310e3dd2c865f9481892cfc262e5a97da (patch) | |
| tree | 46317d2fe64374e43b484bda3f2208c82339d898 /src/lockable.rs | |
| parent | 26bd3c9a0b3861719f8e0e1541d84a28531d368c (diff) | |
Revert bug
Diffstat (limited to 'src/lockable.rs')
| -rw-r--r-- | src/lockable.rs | 26 |
1 files changed, 4 insertions, 22 deletions
diff --git a/src/lockable.rs b/src/lockable.rs index 086ab33..1b1c15c 100644 --- a/src/lockable.rs +++ b/src/lockable.rs @@ -494,7 +494,6 @@ unsafe impl<'a, T: Lockable<'a>, const N: usize> Lockable<'a> for [T; N] { } } - let mut first_idx = 0; 'outer: loop { let mut outputs = MaybeUninit::<[MaybeUninit<T::Output>; N]>::uninit().assume_init(); if N == 0 { @@ -503,15 +502,10 @@ unsafe impl<'a, T: Lockable<'a>, const N: usize> Lockable<'a> for [T; N] { outputs[0].write(self[0].lock()); for i in 0..N { - if first_idx == i { - continue; - } - match self[i].try_lock() { Some(guard) => outputs[i].write(guard), None => { unlock_partial::<T, N>(outputs, i); - first_idx = i; continue 'outer; } }; @@ -561,7 +555,6 @@ unsafe impl<'a, T: Lockable<'a>> Lockable<'a> for Box<[T]> { } unsafe fn lock(&'a self) -> Self::Output { - let mut first_idx = 0; if self.is_empty() { return Box::new([]); } @@ -569,18 +562,13 @@ unsafe impl<'a, T: Lockable<'a>> Lockable<'a> for Box<[T]> { 'outer: loop { let mut outputs = Vec::with_capacity(self.len()); - outputs.push(self[first_idx].lock()); - for (idx, lock) in self.iter().enumerate() { - if first_idx == idx { - continue; - } - + outputs.push(self[0].lock()); + for lock in self.iter() { match lock.try_lock() { Some(guard) => { outputs.push(guard); } None => { - first_idx = idx; continue 'outer; } }; @@ -617,7 +605,6 @@ unsafe impl<'a, T: Lockable<'a>> Lockable<'a> for Vec<T> { } unsafe fn lock(&'a self) -> Self::Output { - let mut first_idx = 0; if self.is_empty() { return Vec::new(); } @@ -625,18 +612,13 @@ unsafe impl<'a, T: Lockable<'a>> Lockable<'a> for Vec<T> { 'outer: loop { let mut outputs = Vec::with_capacity(self.len()); - outputs.push(self[first_idx].lock()); - for (idx, lock) in self.iter().enumerate() { - if first_idx == idx { - continue; - } - + outputs.push(self[0].lock()); + for lock in self { match lock.try_lock() { Some(guard) => { outputs.push(guard); } None => { - first_idx = idx; continue 'outer; } }; |
