2 releases
0.2.1 | Sep 22, 2024 |
---|---|
0.2.0 | Sep 21, 2024 |
#517 in Concurrency
60 downloads per month
Used in flexi_logger
14KB
198 lines
cond_sync
A thin wrapper around std::sync::CondVar and Mutex that enhances readability when synchronizing threads.
Usage
Add cond_sync
to the dependencies in your project's Cargo.toml
:
[dependencies]
cond_sync = "0.2"
Example
use cond_sync::{CondSync, Other};
let cond_sync = CondSync::new(0_usize);
for i in 0..5 {
let cond_sync_t = cond_sync.clone();
std::thread::spawn(move || {
// ...initialize...
cond_sync_t.modify_and_notify(|v| *v += 1, Other::One).unwrap();
// ...do real work...
});
}
// wait until all threads are initialized
cond_sync.wait_until(|v| *v == 5).unwrap();
// ...
Dependencies
No dependencies.
Versions
See the change log for more details.