Skip to main content

OpenAndCompactCancellationToken

Struct OpenAndCompactCancellationToken 

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

A flag that aborts an open_and_compact_with_options call from another thread.

Create one, hand it to OpenAndCompactOptions::set_canceled, keep a clone of the Arc somewhere else, and call cancel from that other thread. Cancellation is one shot and best effort. The compaction iterator checks the flag as it walks the input, so the job stops at the next check rather than immediately.

There is no C API to read the flag back, so this is write only and there is no way to un-cancel. Use a fresh token per call.

Implementations§

Source§

impl OpenAndCompactCancellationToken

Source

pub fn new() -> Self

Allocates a fresh token in the not cancelled state.

Source

pub fn cancel(&self)

Signals that the compaction using this token should stop.

Returns as soon as the flag is stored. The compaction winds down on its own thread and the open_and_compact_with_options call it belongs to then fails.

Trait Implementations§

Source§

impl Default for OpenAndCompactCancellationToken

Source§

fn default() -> Self

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

impl Drop for OpenAndCompactCancellationToken

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. Read more
Source§

impl Send for OpenAndCompactCancellationToken

Source§

impl Sync for OpenAndCompactCancellationToken

Auto Trait Implementations§

Blanket Implementations§

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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, 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.