# cond_sync
**A thin wrapper around std::sync::CondVar and Mutex that enhances readability when synchronizing threads.**
[](https://crates.io/crates/cond_sync)
[](https://docs.rs/cond_sync)
[](https://github.com/emabee/cond_sync)
[](https://github.com/emabee/rust-cond_sync/actions?query=workflow%3ACI)
[](https://github.com/rust-secure-code/safety-dance/)
## Usage
Add `cond_sync` to the dependencies in your project's `Cargo.toml`:
```toml
[dependencies]
cond_sync = "0.2"
```
## Example
```rust
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
```
## Dependencies
No dependencies.
## Versions
See the [change log](https://github.com/emabee/cond_sync/blob/master/CHANGELOG.md)
for more details.