pub struct WorkerLocal<T> {
locals: Vec<CacheAligned<T>>,
registry: Arc<Registry>,
}
Expand description
Holds worker-locals values for each thread in a thread pool. You can only access the worker local value through the Deref impl on the thread pool it was constructed on. It will panic otherwise
Fields§
§locals: Vec<CacheAligned<T>>
§registry: Arc<Registry>
Implementations§
Source§impl<T> WorkerLocal<T>
impl<T> WorkerLocal<T>
Sourcepub fn new<F: FnMut(usize) -> T>(initial: F) -> WorkerLocal<T>
pub fn new<F: FnMut(usize) -> T>(initial: F) -> WorkerLocal<T>
Creates a new worker local where the initial
closure computes the
value this worker local should take for each thread in the thread pool.
Sourcepub fn into_inner(self) -> Vec<T>
pub fn into_inner(self) -> Vec<T>
Returns the worker-local value for each thread
fn current(&self) -> &T
Trait Implementations§
Source§impl<T: Debug> Debug for WorkerLocal<T>
impl<T: Debug> Debug for WorkerLocal<T>
Source§impl<T> Deref for WorkerLocal<T>
impl<T> Deref for WorkerLocal<T>
impl<T: Send> Sync for WorkerLocal<T>
We prevent concurrent access to the underlying value in the Deref impl, thus any values safe to send across threads can be used with WorkerLocal.
Auto Trait Implementations§
impl<T> Freeze for WorkerLocal<T>
impl<T> !RefUnwindSafe for WorkerLocal<T>
impl<T> Send for WorkerLocal<T>where
T: Send,
impl<T> Unpin for WorkerLocal<T>where
T: Unpin,
impl<T> !UnwindSafe for WorkerLocal<T>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Pointable for T
impl<T> Pointable for T
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 32 bytes