A synchronized (atomic) value container implementing the Mutex+Condvar pattern for efficient blocking waits
```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