diff --git a/Cargo.toml b/Cargo.toml index 2f8aff77efa..60877f4222c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -32,7 +32,7 @@ unindent = { version = "0.2.1", optional = true } inventory = { version = "0.3.0", optional = true } # coroutine implementation -futures= "0.3" +futures-util = { version = "0.3", default-features = false, features = ["alloc"] } # crate integrations that can be added using the eponymous features anyhow = { version = "1.0", optional = true } @@ -58,6 +58,7 @@ serde_json = "1.0.61" rayon = "1.0.2" rust_decimal = { version = "1.8.0", features = ["std"] } widestring = "0.5.1" +futures = "0.3.29" [build-dependencies] pyo3-build-config = { path = "pyo3-build-config", version = "0.20.0", features = ["resolve-config"] } diff --git a/src/coroutine.rs b/src/coroutine.rs index e6bc43eb19e..7696f133dc4 100644 --- a/src/coroutine.rs +++ b/src/coroutine.rs @@ -102,7 +102,7 @@ impl Coroutine { } else { self.waker = Some(Arc::new(AsyncioWaker::new())); } - let waker = futures::task::waker(self.waker.clone().unwrap()); + let waker = futures_util::task::waker(self.waker.clone().unwrap()); // poll the Rust future and forward its results if ready if let Poll::Ready(res) = future_rs.as_mut().poll(&mut Context::from_waker(&waker)) { self.close(); diff --git a/src/coroutine/cancel.rs b/src/coroutine/cancel.rs index fdfd24c6bc2..673dc4491fb 100644 --- a/src/coroutine/cancel.rs +++ b/src/coroutine/cancel.rs @@ -1,6 +1,6 @@ use crate::{ffi, Py, PyObject, Python}; -use futures::future::poll_fn; -use futures::task::AtomicWaker; +use futures_util::future::poll_fn; +use futures_util::task::AtomicWaker; use std::ptr; use std::sync::atomic::{AtomicPtr, Ordering}; use std::sync::Arc; diff --git a/src/coroutine/waker.rs b/src/coroutine/waker.rs index 0f506315d1f..35c3f2210c5 100644 --- a/src/coroutine/waker.rs +++ b/src/coroutine/waker.rs @@ -1,7 +1,7 @@ use crate::sync::GILOnceCell; use crate::types::PyCFunction; use crate::{intern, wrap_pyfunction, Py, PyAny, PyObject, PyResult, Python}; -use futures::task::ArcWake; +use futures_util::task::ArcWake; use pyo3_macros::pyfunction; use std::sync::Arc;