pub struct WorkerLocal<T> {
locals: Box<[CacheAligned<T>]>,
registry: Registry,
}
Expand description
Holds worker local values for each possible thread in a registry. You can only access the
worker local value through the Deref
impl on the registry associated with the thread it was
created on. It will panic otherwise.
Fields§
§locals: Box<[CacheAligned<T>]>
§registry: 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 registry.
sourcepub fn into_inner(self) -> impl Iterator<Item = T>
pub fn into_inner(self) -> impl Iterator<Item = T>
Returns the worker-local values for each thread
Trait Implementations§
source§impl<T: Default> Default for WorkerLocal<T>
impl<T: Default> Default for WorkerLocal<T>
source§impl<T> Deref for WorkerLocal<T>
impl<T> Deref for WorkerLocal<T>
impl<T: DynSend> DynSync for WorkerLocal<T>
impl<T: Send> Sync for WorkerLocal<T>
Auto Trait Implementations§
impl<T> DynSend for WorkerLocal<T>where
T: DynSend,
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>
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
Mutably borrows from an owned value. Read more
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
source§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
impl<'a, T> Captures<'a> for Twhere
T: ?Sized,
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: 24 bytes