nym_task/
lib.rs

1// Copyright 2022 - Nym Technologies SA <contact@nymtech.net>
2// SPDX-License-Identifier: Apache-2.0
3
4pub mod cancellation;
5pub mod connections;
6pub mod event;
7pub mod manager;
8pub(crate) mod runtime_registry;
9#[cfg(not(target_arch = "wasm32"))]
10pub mod signal;
11pub mod spawn;
12
13pub use cancellation::{ShutdownDropGuard, ShutdownManager, ShutdownToken, ShutdownTracker};
14pub use event::{StatusReceiver, StatusSender, TaskStatus, TaskStatusEvent};
15#[allow(deprecated)]
16pub use manager::{TaskClient, TaskManager};
17pub use spawn::spawn_future;
18pub use tokio_util::task::TaskTracker;
19
20#[cfg(not(target_arch = "wasm32"))]
21pub use signal::{wait_for_signal, wait_for_signal_and_error};
22
23pub use crate::runtime_registry::RegistryAccessError;
24
25/// Get or create a ShutdownTracker for SDK use.
26/// This provides automatic task management without requiring manual setup.
27pub fn create_sdk_shutdown_tracker() -> Result<ShutdownTracker, RegistryAccessError> {
28    Ok(runtime_registry::RuntimeRegistry::create_sdk()?.shutdown_tracker_owned())
29}