pub struct ActivityCancellationHandle { /* private fields */ }Expand description
Internal handle used by the worker runtime to signal cooperative cancellation.
Implementations§
Source§impl ActivityCancellationHandle
impl ActivityCancellationHandle
Sourcepub fn cancel(&self)
pub fn cancel(&self)
Signals cooperative cancellation to the handler-facing context.
The FLAG IS SET FIRST and the waiters woken second, and that order is
load-bearing in both directions: a waiter woken by this call finds the
flag already true (so ActivityContext::cancelled never wakes to a
flag that has not landed yet), and a waiter that registered before the
wake is woken by it (so the flag never lands with nobody told). Waking
first and setting second would let a woken waiter read false, loop,
and park forever on a notification that has already been spent.
notify_waiters runs only on the 0→1 transition because cancellation
is signalled once: a second cancel has nothing new to say, and the
waiters it would wake are the ones already returned by the flag.
Trait Implementations§
Source§impl Clone for ActivityCancellationHandle
impl Clone for ActivityCancellationHandle
Source§fn clone(&self) -> ActivityCancellationHandle
fn clone(&self) -> ActivityCancellationHandle
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for ActivityCancellationHandle
impl RefUnwindSafe for ActivityCancellationHandle
impl Send for ActivityCancellationHandle
impl Sync for ActivityCancellationHandle
impl Unpin for ActivityCancellationHandle
impl UnsafeUnpin for ActivityCancellationHandle
impl UnwindSafe for ActivityCancellationHandle
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request