summaryrefslogtreecommitdiff
path: root/src/rwlock
diff options
context:
space:
mode:
Diffstat (limited to 'src/rwlock')
-rw-r--r--src/rwlock/read_guard.rs10
-rw-r--r--src/rwlock/rwlock.rs2
-rw-r--r--src/rwlock/write_guard.rs10
3 files changed, 19 insertions, 3 deletions
diff --git a/src/rwlock/read_guard.rs b/src/rwlock/read_guard.rs
index d8db9b9..074b0a9 100644
--- a/src/rwlock/read_guard.rs
+++ b/src/rwlock/read_guard.rs
@@ -46,7 +46,15 @@ impl<'a, 'key: 'a, T: ?Sized + 'a, Key: Keyable, R: RawRwLock>
Self {
rwlock: RwLockReadRef(rwlock),
thread_key,
- _phantom: PhantomData,
+ _phantom1: PhantomData,
+ _phantom2: PhantomData,
}
}
}
+
+unsafe impl<'a, T: ?Sized + 'a, R: RawRwLock> Sync for RwLockReadRef<'a, T, R> {}
+
+unsafe impl<'a, 'key: 'a, T: ?Sized + 'a, Key: Keyable, R: RawRwLock> Sync
+ for RwLockReadGuard<'a, 'key, T, Key, R>
+{
+}
diff --git a/src/rwlock/rwlock.rs b/src/rwlock/rwlock.rs
index b1c7ff0..b1c4def 100644
--- a/src/rwlock/rwlock.rs
+++ b/src/rwlock/rwlock.rs
@@ -370,4 +370,4 @@ impl<T: ?Sized, R: RawRwLock> RwLock<T, R> {
}
unsafe impl<R: RawRwLock + Send, T: ?Sized + Send> Send for RwLock<T, R> {}
-unsafe impl<R: RawRwLock + Sync, T: ?Sized + Send + Sync> Sync for RwLock<T, R> {}
+unsafe impl<R: RawRwLock + Sync, T: ?Sized + Send> Sync for RwLock<T, R> {}
diff --git a/src/rwlock/write_guard.rs b/src/rwlock/write_guard.rs
index dd168bf..9350425 100644
--- a/src/rwlock/write_guard.rs
+++ b/src/rwlock/write_guard.rs
@@ -63,7 +63,15 @@ impl<'a, 'key: 'a, T: ?Sized + 'a, Key: Keyable, R: RawRwLock>
Self {
rwlock: RwLockWriteRef(rwlock),
thread_key,
- _phantom: PhantomData,
+ _phantom1: PhantomData,
+ _phantom2: PhantomData,
}
}
}
+
+unsafe impl<'a, T: ?Sized + 'a, R: RawRwLock> Sync for RwLockWriteRef<'a, T, R> {}
+
+unsafe impl<'a, 'key: 'a, T: ?Sized + 'a, Key: Keyable, R: RawRwLock> Sync
+ for RwLockWriteGuard<'a, 'key, T, Key, R>
+{
+}