# Trait lock_api::RawRwLockUpgrade [−] [src]

    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)` [src]

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

### `fn try_lock_upgradable(&self) -> bool` [src]

Attempts to acquire an upgradable lock without blocking.

### `unsafe fn unlock_upgradable(&self)` [src]

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)` [src]

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` [src]

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...