Struct crossbeam::CachePadded [] [src]

pub struct CachePadded<T> { /* fields omitted */ }

Pad T to the length of a cacheline.

Sometimes concurrent programming requires a piece of data to be padded out to the size of a cacheline to avoid "false sharing": cachelines being invalidated due to unrelated concurrent activity. Use the CachePadded type when you want to avoid cache locality.

At the moment, cache lines are assumed to be 32 * sizeof(usize) on all architectures.

Warning: the wrapped data is never dropped; move out using ptr::read if you need to run dtors.

Methods

impl<T: ZerosValid> CachePadded<T>
[src]

[src]

A const fn equivalent to mem::zeroed().

impl<T> CachePadded<T>
[src]

[src]

Wrap t with cacheline padding.

Warning: the wrapped data is never dropped; move out using ptr:read if you need to run dtors.

Trait Implementations

impl<T> Debug for CachePadded<T>
[src]

[src]

Formats the value using the given formatter.

impl<T: Send> Send for CachePadded<T>
[src]

impl<T: Sync> Sync for CachePadded<T>
[src]

impl<T> Deref for CachePadded<T>
[src]

The resulting type after dereferencing.

[src]

Dereferences the value.

impl<T> DerefMut for CachePadded<T>
[src]

[src]

Mutably dereferences the value.