diff options
Diffstat (limited to 'core/async_cancel.rs')
-rw-r--r-- | core/async_cancel.rs | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/core/async_cancel.rs b/core/async_cancel.rs index e8f25136c..cf338174d 100644 --- a/core/async_cancel.rs +++ b/core/async_cancel.rs @@ -1,6 +1,7 @@ // Copyright 2018-2022 the Deno authors. All rights reserved. MIT license. use crate::RcLike; +use crate::Resource; use futures::future::FusedFuture; use futures::future::Future; use futures::future::TryFuture; @@ -8,6 +9,7 @@ use futures::task::Context; use futures::task::Poll; use pin_project::pin_project; use std::any::type_name; +use std::borrow::Cow; use std::error::Error; use std::fmt; use std::fmt::Display; @@ -84,6 +86,16 @@ impl<F: Future> FusedFuture for Cancelable<F> { } } +impl Resource for CancelHandle { + fn name(&self) -> Cow<str> { + "cancellation".into() + } + + fn close(self: Rc<Self>) { + self.cancel(); + } +} + #[pin_project(project = TryCancelableProjection)] #[derive(Debug)] pub struct TryCancelable<F> { |