diff options
| author | Botahamec <botahamec@outlook.com> | 2024-05-21 14:48:46 -0400 |
|---|---|---|
| committer | Botahamec <botahamec@outlook.com> | 2024-05-21 14:48:46 -0400 |
| commit | cf49f2900fe3c7abd1bbadacfdc745d6b5bbc235 (patch) | |
| tree | a3b4000f0533ae61d4fa53380641f7f9a896bd49 /src/lockable.rs | |
| parent | a4625296cb98a68a590ae1aa78b07f190a850f37 (diff) | |
Fix the Dining Philosophers Problem
Diffstat (limited to 'src/lockable.rs')
| -rw-r--r-- | src/lockable.rs | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/src/lockable.rs b/src/lockable.rs index a5646e1..9b3a4e4 100644 --- a/src/lockable.rs +++ b/src/lockable.rs @@ -124,7 +124,7 @@ unsafe impl<T: Send, R: RawMutex + Send + Sync> OwnedLockable for Mutex<T, R> {} unsafe impl<T: Send, R: RawRwLock + Send + Sync> OwnedLockable for RwLock<T, R> {} -unsafe impl<T: Send, R: RawRwLock + Send + Sync> Lockable for ReadLock<T, R> { +unsafe impl<'l, T: Send, R: RawRwLock + Send + Sync> Lockable for ReadLock<'l, T, R> { type Guard<'g> = RwLockReadRef<'g, T, R> where Self: 'g; fn get_ptrs<'a>(&'a self, ptrs: &mut Vec<&'a dyn Lock>) { @@ -136,7 +136,7 @@ unsafe impl<T: Send, R: RawRwLock + Send + Sync> Lockable for ReadLock<T, R> { } } -unsafe impl<T: Send, R: RawRwLock + Send + Sync> Lockable for WriteLock<T, R> { +unsafe impl<'l, T: Send, R: RawRwLock + Send + Sync> Lockable for WriteLock<'l, T, R> { type Guard<'g> = RwLockWriteRef<'g, T, R> where Self: 'g; fn get_ptrs<'a>(&'a self, ptrs: &mut Vec<&'a dyn Lock>) { @@ -342,19 +342,12 @@ unsafe impl<A: OwnedLockable, B: OwnedLockable, C: OwnedLockable, D: OwnedLockab { } -unsafe impl< - 'a, - A: OwnedLockable, - B: OwnedLockable, - C: OwnedLockable, - D: OwnedLockable, - E: OwnedLockable, - > OwnedLockable for (A, B, C, D, E) +unsafe impl<A: OwnedLockable, B: OwnedLockable, C: OwnedLockable, D: OwnedLockable, E: OwnedLockable> + OwnedLockable for (A, B, C, D, E) { } unsafe impl< - 'a, A: OwnedLockable, B: OwnedLockable, C: OwnedLockable, @@ -366,7 +359,6 @@ unsafe impl< } unsafe impl< - 'a, A: OwnedLockable, B: OwnedLockable, C: OwnedLockable, |
