summaryrefslogtreecommitdiff
path: root/src/mutex
diff options
context:
space:
mode:
Diffstat (limited to 'src/mutex')
-rw-r--r--src/mutex/guard.rs6
-rw-r--r--src/mutex/mutex.rs6
2 files changed, 6 insertions, 6 deletions
diff --git a/src/mutex/guard.rs b/src/mutex/guard.rs
index f57926d..69960cf 100644
--- a/src/mutex/guard.rs
+++ b/src/mutex/guard.rs
@@ -57,13 +57,13 @@ impl<'a, 'key: 'a, T: ?Sized + 'a, Key: Keyable, R: RawMutex> MutexGuard<'a, 'ke
/// Create a guard to the given mutex. Undefined if multiple guards to the
/// same mutex exist at once.
#[must_use]
- pub(super) const unsafe fn new(mutex: &'a Mutex<T, R>, thread_key: Key) -> Self {
+ pub(super) unsafe fn new(mutex: &'a Mutex<T, R>, thread_key: Key) -> Self {
Self {
- mutex: MutexRef(mutex),
+ mutex: MutexRef(mutex, PhantomData),
thread_key,
_phantom2: PhantomData,
}
}
}
-unsafe impl<'a, T: ?Sized + Send + 'a, R: RawMutex + Sync + 'a> Sync for MutexRef<'a, T, R> {}
+unsafe impl<'a, T: ?Sized + Sync + 'a, R: RawMutex + Sync + 'a> Sync for MutexRef<'a, T, R> {}
diff --git a/src/mutex/mutex.rs b/src/mutex/mutex.rs
index 1976e57..917ab78 100644
--- a/src/mutex/mutex.rs
+++ b/src/mutex/mutex.rs
@@ -1,5 +1,5 @@
-use std::cell::UnsafeCell;
use std::fmt::Debug;
+use std::{cell::UnsafeCell, marker::PhantomData};
use lock_api::RawMutex;
@@ -144,7 +144,7 @@ impl<T: ?Sized, R: RawMutex> Mutex<T, R> {
pub(crate) unsafe fn lock_no_key(&self) -> MutexRef<'_, T, R> {
self.raw.lock();
- MutexRef(self)
+ MutexRef(self, PhantomData)
}
/// Attempts to lock the `Mutex` without blocking.
@@ -190,7 +190,7 @@ impl<T: ?Sized, R: RawMutex> Mutex<T, R> {
/// Lock without a [`ThreadKey`]. It is undefined behavior to do this without
/// owning the [`ThreadKey`].
pub(crate) unsafe fn try_lock_no_key(&self) -> Option<MutexRef<'_, T, R>> {
- self.raw.try_lock().then_some(MutexRef(self))
+ self.raw.try_lock().then_some(MutexRef(self, PhantomData))
}
/// Forcibly unlocks the `Lock`.