barriers 0.2.0

A barrier spin lock implementation
Documentation
  • Coverage
  • 0%
    0 out of 5 items documented0 out of 3 items with examples
  • Size
  • Source code size: 4.56 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 1.22 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Links
  • Documentation
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • scottjr632

Rust Barriers

A barrier spin lock implementation in rust!

Installing

Just add the below to your Cargo.toml dependencies.

barriers = "<version number>"

Usage

A barrier must first be initialized before using. A new barrier can be created by using the init method and specifying the count. This barrier is a simple counting barrier that spins on a sense variable.

let barr = barrier::Barrier::init(4); // 4 is the number of threads

Since barriers are generally shared between threads, it is a good idea to use an Arc

let barr = Arc::new(barrier::Barrier::init(4));

and then clone it before moving it to a new thread

for _ in 0..4 {
    let barr_clone = Arc::clone(barr);
    thread::spawn(move || {
        barr_clone.arrive();
    });
}

To pick a synchronization point, simply call the arrive method.

barr_clone.arrive();