Struct Barrier
struct Barrier { ... }
A barrier enables multiple tasks to synchronize the beginning of some computation.
#
# async
Implementations
impl Barrier
fn new(n: usize) -> BarrierCreates a new barrier that can block a given number of tasks.
A barrier will block
n-1 tasks which callBarrier::waitand then wake up all tasks at once when thenth task callswait.async fn wait(self: &Self) -> BarrierWaitResultDoes not resolve until all tasks have rendezvoused here.
Barriers are re-usable after all tasks have rendezvoused once, and can be used continuously.
A single (arbitrary) future will receive a
BarrierWaitResultthat returnstruefromBarrierWaitResult::is_leaderwhen returning from this function, and all other tasks will receive a result that will returnfalsefromis_leader.Cancel safety
This method is not cancel safe.
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>