aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorWladimir Palant <[email protected]>2024-06-28 21:02:29 +0000
committerYuchen Wu <[email protected]>2024-07-12 20:54:04 +0000
commitbf81bd4d932f2041842301f96cdd976fc9e90c89 (patch)
treedf9c4c2ae037ab5d19c6f346c23ab871d5c70aa3
parent9220e6be2d6845e62b1aa553dfbbcc61d5d53492 (diff)
downloadpingora-bf81bd4d932f2041842301f96cdd976fc9e90c89.tar.gz
pingora-bf81bd4d932f2041842301f96cdd976fc9e90c89.zip
Fixes #311 - Make timeouts Sync
Includes-commit: 3faed99e264cda6ba3986912d06c6e67bf5df13b Replicated-from: https://github.com/cloudflare/pingora/pull/312
-rw-r--r--.bleep2
-rw-r--r--pingora-timeout/Cargo.toml1
-rw-r--r--pingora-timeout/src/fast_timeout.rs2
-rw-r--r--pingora-timeout/src/lib.rs7
4 files changed, 5 insertions, 7 deletions
diff --git a/.bleep b/.bleep
index c59abc6..3343758 100644
--- a/.bleep
+++ b/.bleep
@@ -1 +1 @@
-819e3bc852ba912c6fcf02bc9aa4f2c5d6a61d79
+a0543ca77c1d82a93f88fdf93f7a0e8e344f03d3 \ No newline at end of file
diff --git a/pingora-timeout/Cargo.toml b/pingora-timeout/Cargo.toml
index 92e72e7..1bca525 100644
--- a/pingora-timeout/Cargo.toml
+++ b/pingora-timeout/Cargo.toml
@@ -24,7 +24,6 @@ tokio = { workspace = true, features = [
"sync",
] }
pin-project-lite = "0.2"
-futures = "0.3"
once_cell = { workspace = true }
parking_lot = "0.12"
thread_local = "1.0"
diff --git a/pingora-timeout/src/fast_timeout.rs b/pingora-timeout/src/fast_timeout.rs
index c3b251a..d5de5f4 100644
--- a/pingora-timeout/src/fast_timeout.rs
+++ b/pingora-timeout/src/fast_timeout.rs
@@ -50,7 +50,7 @@ fn check_clock_thread(tm: &Arc<TimerManager>) {
pub struct FastTimeout(Duration);
impl ToTimeout for FastTimeout {
- fn timeout(&self) -> BoxFuture<'static, ()> {
+ fn timeout(&self) -> Pin<Box<dyn Future<Output = ()> + Send + Sync>> {
Box::pin(TIMER_MANAGER.register_timer(self.0).poll())
}
diff --git a/pingora-timeout/src/lib.rs b/pingora-timeout/src/lib.rs
index 75b0663..26bb5b9 100644
--- a/pingora-timeout/src/lib.rs
+++ b/pingora-timeout/src/lib.rs
@@ -39,7 +39,6 @@ pub mod timer;
pub use fast_timeout::fast_sleep as sleep;
pub use fast_timeout::fast_timeout as timeout;
-use futures::future::BoxFuture;
use pin_project_lite::pin_project;
use std::future::Future;
use std::pin::Pin;
@@ -50,7 +49,7 @@ use tokio::time::{sleep as tokio_sleep, Duration};
///
/// Users don't need to interact with this trait
pub trait ToTimeout {
- fn timeout(&self) -> BoxFuture<'static, ()>;
+ fn timeout(&self) -> Pin<Box<dyn Future<Output = ()> + Send + Sync>>;
fn create(d: Duration) -> Self;
}
@@ -60,7 +59,7 @@ pub trait ToTimeout {
pub struct TokioTimeout(Duration);
impl ToTimeout for TokioTimeout {
- fn timeout(&self) -> BoxFuture<'static, ()> {
+ fn timeout(&self) -> Pin<Box<dyn Future<Output = ()> + Send + Sync>> {
Box::pin(tokio_sleep(self.0))
}
@@ -100,7 +99,7 @@ pin_project! {
#[pin]
value: T,
#[pin]
- delay: Option<BoxFuture<'static, ()>>,
+ delay: Option<Pin<Box<dyn Future<Output = ()> + Send + Sync>>>,
callback: F, // callback to create the timer
}
}