]> git.lizzy.rs Git - rust.git/blob - library/std/src/sys/unix/thread_local_key.rs
Remove various double spaces in source comments.
[rust.git] / library / std / src / sys / unix / thread_local_key.rs
1 #![allow(dead_code)] // not used on all platforms
2
3 use crate::mem;
4
5 pub type Key = libc::pthread_key_t;
6
7 #[inline]
8 pub unsafe fn create(dtor: Option<unsafe extern "C" fn(*mut u8)>) -> Key {
9     let mut key = 0;
10     assert_eq!(libc::pthread_key_create(&mut key, mem::transmute(dtor)), 0);
11     key
12 }
13
14 #[inline]
15 pub unsafe fn set(key: Key, value: *mut u8) {
16     let r = libc::pthread_setspecific(key, value as *mut _);
17     debug_assert_eq!(r, 0);
18 }
19
20 #[inline]
21 pub unsafe fn get(key: Key) -> *mut u8 {
22     libc::pthread_getspecific(key) as *mut u8
23 }
24
25 #[inline]
26 pub unsafe fn destroy(key: Key) {
27     let r = libc::pthread_key_delete(key);
28     debug_assert_eq!(r, 0);
29 }