Struct Barrier
struct Barrier { ... }
A barrier enables multiple threads to synchronize the beginning of some computation.
Examples
use Barrier;
use thread;
let n = 10;
let barrier = new;
scope;
Implementations
impl Barrier
const fn new(n: usize) -> BarrierCreates a new barrier that can block a given number of threads.
A barrier will block all threads which call
wait()until thenth thread callswait(), and then wake up all threads at once.Examples
use Barrier; let barrier = new;fn wait(self: &Self) -> BarrierWaitResultBlocks the current thread until all threads have rendezvoused here.
Barriers are re-usable after all threads have rendezvoused once, and can be used continuously.
A single (arbitrary) thread will receive a
BarrierWaitResultthat returnstruefrom [BarrierWaitResult::is_leader()] when returning from this function, and all other threads will receive a result that will returnfalsefrom [BarrierWaitResult::is_leader()].Examples
use Barrier; use thread; let n = 10; let barrier = new; scope;
impl Debug for Barrier
fn fmt(self: &Self, f: &mut Formatter<'_>) -> Result
impl Freeze for Barrier
impl RefUnwindSafe for Barrier
impl Send for Barrier
impl Sync for Barrier
impl Unpin for Barrier
impl UnsafeUnpin for Barrier
impl UnwindSafe for Barrier
impl<T> Any for Barrier
fn type_id(self: &Self) -> TypeId
impl<T> Borrow for Barrier
fn borrow(self: &Self) -> &T
impl<T> BorrowMut for Barrier
fn borrow_mut(self: &mut Self) -> &mut T
impl<T> From for Barrier
fn from(t: T) -> TReturns the argument unchanged.
impl<T, U> Into for Barrier
fn into(self: Self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses to do.
impl<T, U> TryFrom for Barrier
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
impl<T, U> TryInto for Barrier
fn try_into(self: Self) -> Result<U, <U as TryFrom<T>>::Error>