Struct concurrency_manager::key_handle::KeyHandle[][src]

pub struct KeyHandle {
    pub key: Key,
    table: UnsafeCell<Option<LockTable>>,
    mutex: AsyncMutex<()>,
    lock_store: Mutex<Option<Lock>>,
}

An entry in the in-memory table providing functions related to a specific key.

Fields

key: Keytable: UnsafeCell<Option<LockTable>>mutex: AsyncMutex<()>lock_store: Mutex<Option<Lock>>

Implementations

impl KeyHandle[src]

pub fn new(key: Key) -> Self[src]

pub async fn lock(self: Arc<Self>) -> KeyHandleGuard[src]

pub fn with_lock<T>(&self, f: impl FnOnce(&Option<Lock>) -> T) -> T[src]

pub(crate) unsafe fn set_table(&self, table: LockTable)[src]

Set the LockTable that the KeyHandle is in.

This method is not thread safe. Make sure that no other threads access table at the same time.

Trait Implementations

impl Drop for KeyHandle[src]

impl Sync for KeyHandle[src]

Auto Trait Implementations

impl !RefUnwindSafe for KeyHandle

impl Send for KeyHandle

impl Unpin for KeyHandle

impl !UnwindSafe for KeyHandle

Blanket Implementations

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

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

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

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

impl<T> Instrument for T[src]

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

impl<T> Pointable for T[src]

type Init = T

The type for initializers.

impl<T> Pointable for T[src]

type Init = T

The type for initializers.

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

type Output = T

Should always be Self

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

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.

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.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>, 
[src]