Skip to main content

lock

Macro lock 

Source
macro_rules! lock {
    ($mutex:expr) => { ... };
    ($mutex:expr, $context:expr) => { ... };
}
Expand description

Helper macro for locking mutexes with automatic internal error handling.

This macro simplifies the common pattern of locking a mutex and converting poisoning errors to Error::Internal. It automatically adds context about which mutex was poisoned.

§Examples

// Without macro:
let mut data = my_mutex.lock().map_err(|_| Error::Internal("mutex poisoned".into()))?;

// With macro:
let mut data = lock!(my_mutex)?;

The macro also supports adding context information:

// With context:
let mut data = lock!(my_mutex, "task_queue")?;
// Produces: Error::Internal("mutex poisoned: task_queue")