synchronoise/lib.rs
1//! A collection of synchronization primitives that build on the primitives available in the
2//! standard library.
3//!
4//! This library contains the following special-purpose synchronization primitives:
5//!
6//! * [`CountdownEvent`], a primitive that keeps a counter and allows a thread to wait until the
7//! counter reaches zero.
8//! * [`SignalEvent`], a primitive that allows one or more threads to wait on a signal from another
9//! thread.
10//! * [`WriterReaderPhaser`], a primitive that allows multiple wait-free "writer critical sections"
11//! against a "reader phase flip" that waits for currently-active writers to finish.
12//!
13//! [`CountdownEvent`]: struct.CountdownEvent.html
14//! [`SignalEvent`]: struct.SignalEvent.html
15//! [`WriterReaderPhaser`]: struct.WriterReaderPhaser.html
16
17#![deny(warnings, missing_docs)]
18
19// Name source: http://bulbapedia.bulbagarden.net/wiki/Synchronoise_(move)
20
21extern crate crossbeam_queue;
22
23pub mod event;
24pub mod phaser;
25
26pub use event::{CountdownEvent, SignalEvent};
27pub use phaser::WriterReaderPhaser;