Waitable

A synchronized (atomic) value container implementing the Mutex+Condvar pattern for efficient blocking waits

Usage

```rust use std::sync::Arc; use waitable::Waitable;

let w = Arc::new(Waitable::new(0));

println!("Spawning thread...");

let join_handle = { let w = w.clone(); std::thread::spawn(move || { println!("Thread waiting..."); w.wait(&42); println!("Thread done waiting"); }) };

println!("Waiting to set..."); std::thread::sleep(std::time::Duration::from_millis(500));

println!("Setting..."); w.set(42);

join_handle.join().unwrap(); println!("All done"); ```

Spawning thread... Waiting to set... Thread waiting... Setting... Thread done waiting All done