diff --git a/Cargo.lock b/Cargo.lock index ad94177..fe4016c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -544,7 +544,7 @@ dependencies = [ [[package]] name = "nocontrol" -version = "0.0.2" +version = "0.0.3" dependencies = [ "anyhow", "async-trait", diff --git a/Cargo.toml b/Cargo.toml index 0587ed6..dc3e0bf 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ members = ["crates/*", "examples/*"] resolver = "2" [workspace.package] -version = "0.0.2" +version = "0.0.3" [workspace.dependencies] nocontrol = { path = "crates/nocontrol" } diff --git a/crates/nocontrol/src/control_plane.rs b/crates/nocontrol/src/control_plane.rs index 95a872a..67afd14 100644 --- a/crates/nocontrol/src/control_plane.rs +++ b/crates/nocontrol/src/control_plane.rs @@ -38,11 +38,18 @@ impl ControlPlane { self } - pub async fn execute(&self) -> anyhow::Result<()> { + self.execute_with_cancellation(CancellationToken::new()) + .await + } + + pub async fn execute_with_cancellation( + &self, + cancellation: CancellationToken, + ) -> anyhow::Result<()> { tracing::info!(worker_id = %self.worker_id, "starting control plane"); - let cancellation_token = CancellationToken::new(); + let cancellation_token = cancellation; let child_token = cancellation_token.child_token(); if let Some(deadline) = self.deadline { tokio::spawn(async move {