# Rust Barriers A barrier spin lock implementation in rust! ## Installing Just add the below to your `Cargo.toml` dependencies. ``` barriers = "" ``` ## 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. ```rust 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` ```rust let barr = Arc::new(barrier::Barrier::init(4)); ``` and then clone it before moving it to a new thread ```rust 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. ```rust barr_clone.arrive(); ```