# Waithandle A Rust library that makes signaling between threads a bit more ergonomic. Uses [Condvar][1] and [Mutex][2] under the hood to block threads without consuming CPU time. ## Usage ```rust use std::time::Duration; // Create the signaler and the listener let (signaler, listener) = waithandle::new(); // Signal a thread signaler.signal(); // Did someone signal us? if listener.check() { println!("signal received"); } // Wait for 5 seconds or until someone signals us if listener.wait(Duration::from_secs(5)) { println!("signal received"); } ``` ## Running the example ``` > cargo run --example simple ``` ``` Doing some work... Doing some work... Doing some work... Doing some work... Doing some work... Signaling thread... Joining thread... Someone told us to exit! Done! ``` [1]: https://doc.rust-lang.org/std/sync/struct.Condvar.html [2]: https://doc.rust-lang.org/std/sync/struct.Mutex.html ## Running benchmarks ``` > cargo bench ```