diff --git a/Cargo.toml b/Cargo.toml index e1bab54..e95ab30 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "try-lock" -version = "0.2.3" # remember to update html_root_url +version = "0.2.4" # remember to update html_root_url description = "A lightweight atomic lock." keywords = ["lock", "atomic"] categories = ["concurrency", "no-std"] diff --git a/src/lib.rs b/src/lib.rs index bf15558..e0e46b4 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -51,6 +51,7 @@ use core::cell::UnsafeCell; use core::fmt; use core::ops::{Deref, DerefMut}; use core::sync::atomic::{AtomicBool, Ordering}; +use core::marker::PhantomData; /// A light-weight lock guarded by an atomic boolean. /// @@ -167,6 +168,7 @@ impl TryLock { Some(Locked { lock: self, order: unlock_order, + _p: PhantomData, }) } else { None @@ -216,6 +218,8 @@ impl fmt::Debug for TryLock { pub struct Locked<'a, T: 'a> { lock: &'a TryLock, order: Ordering, + /// Suppresses Send and Sync autotraits for `struct Locked`. + _p: PhantomData<*mut T>, } impl<'a, T> Deref for Locked<'a, T> {