fn main() {
let resource = std::sync::Arc::new(11);
let semaphore = bau::Semaphore::new(10);
let r = resource.clone();
let s = semaphore.clone();
std::thread::spawn(move || {
let _: i32 = semaphore
.wait(|| {
*resource + *resource })
.unwrap(); });
std::thread::spawn(move || {
let _: i32 = {
let _guard = s.wait_guard();
*r + *r }; });
println!("BAU BAU!");
}