[−][src]Crate per_thread_object
Efficient per-object thread-local storage implementation.
use std::thread; use std::sync::Arc; use std::cell::RefCell; use per_thread_object::ThreadLocal; fn default() -> RefCell<u32> { RefCell::new(0x0) } let tl: Arc<ThreadLocal<RefCell<u32>>> = Arc::new(ThreadLocal::new()); let tl2 = tl.clone(); thread::spawn(move || { tl2.with_or(|val| *val.borrow_mut() += 1, default); let val = tl2.with(|val| *val.borrow()); assert_eq!(0x1, val); }) .join() .unwrap(); tl.with_or(|val| *val.borrow_mut() += 2, default); assert_eq!(0x2, tl.with_or(|val| *val.borrow(), default));
Structs
ThreadLocal | Per-object thread-local storage |
Constants
DEFAULT_PAGE_CAP |