use std::thread;
use std::time::Duration;
fn main() {
let (signaler, listener) = waithandle::new();
let thread = thread::spawn({
move || {
loop {
println!("Doing some work...");
if listener.wait(Duration::from_secs(1)) {
println!("Someone told us to exit!");
break;
}
}
}
});
std::thread::sleep(Duration::from_secs(5));
println!("Signaling thread...");
signaler.signal();
println!("Joining thread...");
thread.join().unwrap();
println!("Done!");
}