Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/aib/waitable


https://github.com/aib/waitable

Last synced: 3 days ago
JSON representation

Awesome Lists containing this project

README

        

# 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
```