Remove unused std::sys_common::thread_local_key::Key.
This commit is contained in:
parent
6ce22733b9
commit
94c855153a
@ -87,31 +87,6 @@ pub struct StaticKey {
|
|||||||
dtor: Option<unsafe extern "C" fn(*mut u8)>,
|
dtor: Option<unsafe extern "C" fn(*mut u8)>,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// A type for a safely managed OS-based TLS slot.
|
|
||||||
///
|
|
||||||
/// This type allocates an OS TLS key when it is initialized and will deallocate
|
|
||||||
/// the key when it falls out of scope. When compared with `StaticKey`, this
|
|
||||||
/// type is entirely safe to use.
|
|
||||||
///
|
|
||||||
/// Implementations will likely, however, contain unsafe code as this type only
|
|
||||||
/// operates on `*mut u8`, a raw pointer.
|
|
||||||
///
|
|
||||||
/// # Examples
|
|
||||||
///
|
|
||||||
/// ```ignore (cannot-doctest-private-modules)
|
|
||||||
/// use tls::os::Key;
|
|
||||||
///
|
|
||||||
/// let key = Key::new(None);
|
|
||||||
/// assert!(key.get().is_null());
|
|
||||||
/// key.set(1 as *mut u8);
|
|
||||||
/// assert!(!key.get().is_null());
|
|
||||||
///
|
|
||||||
/// drop(key); // deallocate this TLS slot.
|
|
||||||
/// ```
|
|
||||||
pub struct Key {
|
|
||||||
key: imp::Key,
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Constant initialization value for static TLS keys.
|
/// Constant initialization value for static TLS keys.
|
||||||
///
|
///
|
||||||
/// This value specifies no destructor by default.
|
/// This value specifies no destructor by default.
|
||||||
@ -194,39 +169,3 @@ unsafe fn lazy_init(&self) -> usize {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Key {
|
|
||||||
/// Creates a new managed OS TLS key.
|
|
||||||
///
|
|
||||||
/// This key will be deallocated when the key falls out of scope.
|
|
||||||
///
|
|
||||||
/// The argument provided is an optionally-specified destructor for the
|
|
||||||
/// value of this TLS key. When a thread exits and the value for this key
|
|
||||||
/// is non-null the destructor will be invoked. The TLS value will be reset
|
|
||||||
/// to null before the destructor is invoked.
|
|
||||||
///
|
|
||||||
/// Note that the destructor will not be run when the `Key` goes out of
|
|
||||||
/// scope.
|
|
||||||
#[inline]
|
|
||||||
pub fn new(dtor: Option<unsafe extern "C" fn(*mut u8)>) -> Key {
|
|
||||||
Key { key: unsafe { imp::create(dtor) } }
|
|
||||||
}
|
|
||||||
|
|
||||||
/// See StaticKey::get
|
|
||||||
#[inline]
|
|
||||||
pub fn get(&self) -> *mut u8 {
|
|
||||||
unsafe { imp::get(self.key) }
|
|
||||||
}
|
|
||||||
|
|
||||||
/// See StaticKey::set
|
|
||||||
#[inline]
|
|
||||||
pub fn set(&self, val: *mut u8) {
|
|
||||||
unsafe { imp::set(self.key, val) }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Drop for Key {
|
|
||||||
fn drop(&mut self) {
|
|
||||||
unsafe { imp::destroy(self.key) }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Loading…
Reference in New Issue
Block a user