Struct arc_swap::gen_lock::PrivateUnsharded[][src]

pub struct PrivateUnsharded { /* fields omitted */ }
Expand description

A single „shard“ that is stored inline, inside the corresponding ArcSwap. Therefore, locks on each instance won’t influence any other instances. On the other hand, the ArcSwap itself gets bigger and doesn’t have multiple shards, so concurrent uses might contend each other a bit.

// This one shares locks with others.
let shared = ArcSwap::from_pointee(42);
// But this one has an independent lock.
let independent = ArcSwapAny::<Arc<usize>, PrivateUnsharded>::from_pointee(42);

// This'll hold a lock so any writers there wouldn't complete
let l = independent.load_signal_safe();
// But the lock doesn't influence the shared one, so this goes through just fine
shared.store(Arc::new(43));

assert_eq!(42, **l);

Note that theres a type alias [IndependentArcSwap`](../type.IndependentArcSwap.html) that can be used instead.

Trait Implementations

impl Default for PrivateUnsharded[src]

fn default() -> PrivateUnsharded[src]

Returns the “default value” for a type. Read more

impl LockStorage for PrivateUnsharded[src]

type Shards = [Shard; 1]

The type for keeping several shards. Read more

fn gen_idx(&self) -> &AtomicUsize[src]

Access to the generation index. Read more

fn shards(&self) -> &[Shard; 1][src]

Access to the shards storage. Read more

fn choose_shard(&self) -> usize[src]

Pick one shard of the all selected. Read more

Auto Trait Implementations

impl RefUnwindSafe for PrivateUnsharded

impl Send for PrivateUnsharded

impl Sync for PrivateUnsharded

impl Unpin for PrivateUnsharded

impl UnwindSafe for PrivateUnsharded

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.