๐Ÿ”’ Rust Mutex

= a lock on data access

How?

Normal

  • Mutex<T> -> Mutex::new(T)
  • .lock() to acquire the lock
    • blocks until mutex is obtained
    • returns MutexGuard<T>
    • released when variable is dropped

Read, write

  • RwLock
    • .write() waits for exclusive, mut access
      • -> max one writer
    • .read() waits for non-mut access
      • -> many readers

Conditional

  • std::sync::Condvar
    • .wait() -> block thread
    • .notify_all() -> releases blocked (via .wait()) thread