use std::sync::atomic::{AtomicBool, Ordering}; use std::sync::Arc; pub struct Canceller { /// A reference to the canceled value of a context. cancelled: Arc, } impl Canceller { // Create a new Canceller pub fn new(cancelled: Arc) -> Canceller { Canceller { cancelled, } } // Cancel the context. pub fn cancel(self) { self.cancelled.store(true, Ordering::SeqCst); } }