diff --git a/crates/pile-toolbox/src/cancelabletask.rs b/crates/pile-toolbox/src/cancelabletask.rs index d91f879..3ae4cf6 100644 --- a/crates/pile-toolbox/src/cancelabletask.rs +++ b/crates/pile-toolbox/src/cancelabletask.rs @@ -80,10 +80,12 @@ impl CancelFlag { #[inline] pub async fn await_cancel(&self) { - if self.is_cancelled() { - return; + let notified = self.notify.notified(); + tokio::pin!(notified); + notified.as_mut().enable(); + if !self.is_cancelled() { + notified.await; } - self.notify.notified().await; } #[inline]