docs: document client public API
This commit is contained in:
1 parent
8fd0b803e9
commit
01c10e2e0d
8 files changed
+395
-1
No files matched your search
@@ -3,20 +3,31 @@ use std::sync::{
|
||||
Arc,
|
||||
};
|
||||
|
||||
/// Cloneable cooperative cancellation flag.
|
||||
///
|
||||
/// Managed sessions use this internally to ask their worker loop to stop. It is
|
||||
/// exported for callers that want the same simple cancellation primitive in
|
||||
/// code built around `irtt-client`.
|
||||
#[derive(Debug, Clone, Default)]
|
||||
pub struct CancellationToken {
|
||||
cancelled: Arc<AtomicBool>,
|
||||
}
|
||||
|
||||
impl CancellationToken {
|
||||
/// Create a token in the non-cancelled state.
|
||||
pub fn new() -> Self {
|
||||
Self::default()
|
||||
}
|
||||
|
||||
/// Mark the token as cancelled.
|
||||
///
|
||||
/// Cancellation is idempotent and is visible through all clones of the
|
||||
/// token.
|
||||
pub fn cancel(&self) {
|
||||
self.cancelled.store(true, Ordering::SeqCst);
|
||||
}
|
||||
|
||||
/// Return whether cancellation has been requested.
|
||||
#[must_use]
|
||||
pub fn is_cancelled(&self) -> bool {
|
||||
self.cancelled.load(Ordering::SeqCst)
|
||||
|
||||
Reference in new issue
Block a user