MappedMutexGuard in std::sync - Rust (original) (raw)

Struct MappedMutexGuard

Source

pub struct MappedMutexGuard<'a, T: ?Sized + 'a> { /* private fields */ }

🔬This is a nightly-only experimental API. (mapped_lock_guards #117108)

Expand description

An RAII mutex guard returned by MutexGuard::map, which can point to a subfield of the protected data. When this structure is dropped (falls out of scope), the lock will be unlocked.

The main difference between MappedMutexGuard and MutexGuard is that the former cannot be used with Condvar, since that could introduce soundness issues if the locked object is modified by another thread while the Mutex is unlocked.

The data protected by the mutex can be accessed through this guard via itsDeref and DerefMut implementations.

This structure is created by the map and try_map methods onMutexGuard.

Source§

Source

🔬This is a nightly-only experimental API. (mapped_lock_guards #117108)

Makes a MappedMutexGuard for a component of the borrowed data, e.g. an enum variant.

The Mutex is already locked, so this cannot fail.

This is an associated function that needs to be used asMappedMutexGuard::map(...). A method would interfere with methods of the same name on the contents of the MutexGuard used through Deref.

Source

🔬This is a nightly-only experimental API. (mapped_lock_guards #117108)

Makes a MappedMutexGuard for a component of the borrowed data. The original guard is returned as an Err(...) if the closure returnsNone.

The Mutex is already locked, so this cannot fail.

This is an associated function that needs to be used asMappedMutexGuard::try_map(...). A method would interfere with methods of the same name on the contents of the MutexGuard used through Deref.