#monitor #synchronization #sync

yanked monitor_rs

Monitor synchronization construct

Uses old Rust 2015

0.0.1 Sep 12, 2015

#133 in #synchronization

Custom license

15KB
346 lines

monitor_rs

A Rust library that implements the Monitor synchronization construct.

License: MIT

Example

extern crate monitor_rs;

use monitor_rs::{Monitor, MonitorGuard};
use std::sync::Arc;
use std::thread;
use std::time::Duration;

fn main() {
    let mon = Arc::new(Monitor::new(false));
    {
        let mon = mon.clone();
        let _ = thread::spawn(move || {
            thread::sleep(Duration::new(1, 0));
            mon.with_lock(&|done: MonitorGuard<bool>| {
                *done = true;
                done.notify_one();
            });
        });
    }
    
    mon.with_lock(&|mut done| {
        while !*done {
            done.wait();
        }
    });
}

For more examples, see the tests in lib.rs.

No runtime deps