Skip to main content

ExecutionCancellation

Struct ExecutionCancellation 

Source
pub struct ExecutionCancellation { /* private fields */ }
Expand description

Shared cooperative cancellation token for native query execution.

Cancellation is observed only at native-engine boundaries. It does not preempt a libcudf/CUDA call already in flight, but it prevents the next source chunk, pipeline task, operator, or materialization step from starting once it is requested. A wait can also resolve on it through Self::cancelled_or_expired.

Implementations§

Source§

impl ExecutionCancellation

Source

pub fn new() -> Self

Creates a non-cancelled execution flag.

Source

pub fn with_deadline(deadline: Option<Instant>) -> Self

Creates a cancellation token with an optional absolute deadline.

The deadline is checked at the same cooperative native-engine boundaries as caller cancellation. It cannot preempt a CUDA call already in flight, but it prevents the next safe boundary from starting more native work after the deadline has elapsed.

Source

pub fn cancel(&self)

Marks the execution as cancelled and wakes every Self::cancelled_or_expired waiter.

Source

pub async fn cancelled_or_expired(&self)

Resolves once the execution is cancelled or its deadline elapses, so a wait with no other wakeup for either can race it. Self::check still tells the two apart. Must run inside a Tokio runtime with the time driver enabled when a deadline is set.

Source

pub async fn terminated(&self, operation: &'static str) -> QueryError

Resolves to the typed error that ends a wait: the cancellation, or the deadline once it elapses. A waiter returns it directly and does not read the clock again, since a paused Tokio clock can disagree with a fresh reading.

Source

pub fn sleep(&self, duration: Duration, operation: &'static str) -> Result<()>

Blocks the calling thread for duration. Cancellation or an elapsed deadline ends the wait early with the typed error Self::check reports.

Source

pub fn is_cancelled(&self) -> bool

Returns whether this execution must stop at its next cooperative safe boundary.

An elapsed deadline is intentionally an effective cancellation here. Callers that need to distinguish an explicit caller action from expiry must use Self::check, which preserves explicit cancellation as the primary reason.

Source

pub fn deadline(&self) -> Option<Instant>

Returns the optional absolute deadline shared by every clone.

Source

pub fn is_expired(&self) -> bool

Returns whether the optional deadline has elapsed.

Source

pub fn check(&self, operation: &'static str) -> Result<()>

Returns a structured native error if cancellation has been requested or the deadline has elapsed. Explicit cancellation takes precedence over expiry.

Trait Implementations§

Source§

impl Clone for ExecutionCancellation

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ExecutionCancellation

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for ExecutionCancellation

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more