[][src]Trait lock_api::RawRwLockUpgrade

pub unsafe trait RawRwLockUpgrade: RawRwLock {
    fn lock_upgradable(&self);
fn try_lock_upgradable(&self) -> bool;
unsafe fn unlock_upgradable(&self);
unsafe fn upgrade(&self);
unsafe fn try_upgrade(&self) -> bool; }

Additional methods for RwLocks which support atomically upgrading a shared lock to an exclusive lock.

This requires acquiring a special "upgradable read lock" instead of a normal shared lock. There may only be one upgradable lock at any time, otherwise deadlocks could occur when upgrading.

Required methods

fn lock_upgradable(&self)

Acquires an upgradable lock, blocking the current thread until it is able to do so.

fn try_lock_upgradable(&self) -> bool

Attempts to acquire an upgradable lock without blocking.

unsafe fn unlock_upgradable(&self)

Releases an upgradable lock.

Safety

This method may only be called if an upgradable lock is held in the current context.

unsafe fn upgrade(&self)

Upgrades an upgradable lock to an exclusive lock.

Safety

This method may only be called if an upgradable lock is held in the current context.

unsafe fn try_upgrade(&self) -> bool

Attempts to upgrade an upgradable lock to an exclusive lock without blocking.

Safety

This method may only be called if an upgradable lock is held in the current context.

Loading content...

Implementors

Loading content...