pub struct Barrier { /* private fields */ }
Expand description
A barrier enables multiple threads to synchronize the beginning of some computation.
Implementations
sourceimpl Barrier
impl Barrier
sourcepub const fn new(n: usize) -> Barrier
pub const fn new(n: usize) -> Barrier
Creates a new barrier that can block a given number of threads.
A barrier will block n
-1 threads which call wait()
and then wake
up all threads at once when the n
th thread calls wait()
.
sourcepub fn wait(&self) -> BarrierWaitResult
pub fn wait(&self) -> BarrierWaitResult
Blocks 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 BarrierWaitResult
that
returns true
from BarrierWaitResult::is_leader()
when returning
from this function, and all other threads will receive a result that
will return false
from BarrierWaitResult::is_leader()
.
Trait Implementations
Auto Trait Implementations
impl !RefUnwindSafe for Barrier
impl Send for Barrier
impl Sync for Barrier
impl Unpin for Barrier
impl UnwindSafe for Barrier
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more