pub struct CancelToken { /* private fields */ }Expand description
A cheaply cloneable, thread-safe cancellation flag.
Clones share one flag (the C++ ExecutionContext pimpl semantics), so a
token handed to a worker thread can be cancelled from anywhere. Cancellation
is sticky: there is no way to un-cancel a token, matching C++, where the
flag is deliberately preserved across operation resets. Start a fresh token
for work that should be allowed to complete.
§Example
use manifold_rust::cancel::CancelToken;
use manifold_rust::manifold::Manifold;
use manifold_rust::linalg::Vec3;
use manifold_rust::types::{Error, OpType};
let token = CancelToken::new();
token.cancel();
let a = Manifold::cube(Vec3::splat(1.0), true);
let b = Manifold::cube(Vec3::splat(1.0), true);
let result = a.boolean_with_token(&b, OpType::Add, Some(&token));
assert_eq!(result.status(), Error::Cancelled);Implementations§
Source§impl CancelToken
impl CancelToken
Sourcepub fn cancel(&self)
pub fn cancel(&self)
Request cancellation. Callable from any thread, including while another thread is inside an operation holding a clone of this token.
Relaxed matches C++ cancel.store(true, std::memory_order_relaxed):
the flag is advisory and orders nothing else, and the readers only ever
use the value to decide whether to stop early.
Sourcepub fn is_cancelled(&self) -> bool
pub fn is_cancelled(&self) -> bool
Whether cancellation has been requested.
Trait Implementations§
Source§impl Clone for CancelToken
impl Clone for CancelToken
Source§fn clone(&self) -> CancelToken
fn clone(&self) -> CancelToken
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for CancelToken
impl Debug for CancelToken
Source§impl Default for CancelToken
impl Default for CancelToken
Source§fn default() -> CancelToken
fn default() -> CancelToken
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for CancelToken
impl RefUnwindSafe for CancelToken
impl Send for CancelToken
impl Sync for CancelToken
impl Unpin for CancelToken
impl UnsafeUnpin for CancelToken
impl UnwindSafe for CancelToken
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
Mutably borrows from an owned value. Read more