diff options
| author | Mica White <botahamec@gmail.com> | 2024-12-25 17:58:06 -0500 |
|---|---|---|
| committer | Mica White <botahamec@gmail.com> | 2024-12-25 17:58:06 -0500 |
| commit | 37ab873d21ca1fcd43db8d6a26d5bac4f5285f71 (patch) | |
| tree | 987e0a0604c29ceea8d17e424df65993608c7ea5 /src/poisonable | |
| parent | bfdbf20a813bb4b5527a3d6ff4a5c1bac134b466 (diff) | |
Move some logic into the Sharable trait
Diffstat (limited to 'src/poisonable')
| -rw-r--r-- | src/poisonable/poisonable.rs | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/poisonable/poisonable.rs b/src/poisonable/poisonable.rs index 0fc66a8..57436eb 100644 --- a/src/poisonable/poisonable.rs +++ b/src/poisonable/poisonable.rs @@ -47,11 +47,6 @@ unsafe impl<L: Lockable> Lockable for Poisonable<L> { where Self: 'g; - type ReadGuard<'g> - = PoisonResult<PoisonRef<'g, L::ReadGuard<'g>>> - where - Self: 'g; - fn get_ptrs<'a>(&'a self, ptrs: &mut Vec<&'a dyn RawLock>) { self.inner.get_ptrs(ptrs) } @@ -65,6 +60,13 @@ unsafe impl<L: Lockable> Lockable for Poisonable<L> { Err(PoisonError::new(ref_guard)) } } +} + +unsafe impl<L: Sharable> Sharable for Poisonable<L> { + type ReadGuard<'g> + = PoisonResult<PoisonRef<'g, L::ReadGuard<'g>>> + where + Self: 'g; unsafe fn read_guard(&self) -> Self::ReadGuard<'_> { let ref_guard = PoisonRef::new(&self.poisoned, self.inner.read_guard()); @@ -77,7 +79,6 @@ unsafe impl<L: Lockable> Lockable for Poisonable<L> { } } -unsafe impl<L: Sharable> Sharable for Poisonable<L> {} unsafe impl<L: OwnedLockable> OwnedLockable for Poisonable<L> {} impl<L> From<L> for Poisonable<L> { |
