From 37ab873d21ca1fcd43db8d6a26d5bac4f5285f71 Mon Sep 17 00:00:00 2001 From: Mica White Date: Wed, 25 Dec 2024 17:58:06 -0500 Subject: Move some logic into the Sharable trait --- src/poisonable/poisonable.rs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'src/poisonable/poisonable.rs') 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 Lockable for Poisonable { where Self: 'g; - type ReadGuard<'g> - = PoisonResult>> - 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 Lockable for Poisonable { Err(PoisonError::new(ref_guard)) } } +} + +unsafe impl Sharable for Poisonable { + type ReadGuard<'g> + = PoisonResult>> + 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 Lockable for Poisonable { } } -unsafe impl Sharable for Poisonable {} unsafe impl OwnedLockable for Poisonable {} impl From for Poisonable { -- cgit v1.2.3