Enum file_guard::Lock[][src]

pub enum Lock {
    Shared,
    Exclusive,
}
Expand description

The type of a lock operation.

This is used to specify the desired lock type when used with lock() and try_lock(), and it is the successful result type returned by lock_any().

Variants

Shared

A shared lock may be concurrently held by multiple processes while preventing future exclusive locks its lifetime.

The shared lock type cannot be obtained while an exclusive lock is held by another process. When successful, a shared lock guarantees that only one or more shared locks are concurrently held, and that no exclusive locks are held.

This lock type–often referred to as a read lock–may be used as a means of signaling read integrity. When used cooperatively, they ensure no exclusive lock is held, and thus, no other process may be writing to a shared resource.

Exclusive

An exclusive lock may only be held by a single process.

The exclusive lock type can neither be obtained while any shared locks are held or while any other exclusive locks are held. This linearizes the sequence of processes attempting to acquire an exclusive lock.

This lock type–also known as a write lock–may be used as a means of ensuring write exclusivity. In a cooperative locking environment, all access to a shared resource is halted until the exlusive lock is released.

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.