futures-rs
futures-rs copied to clipboard
Zero-cost asynchronous programming in Rust
__STATUS:__ need the following updates to resolve expected CI issues: - [ ] PR #2904 - resolve known clippy issue - [ ] ~~PR #2907 - bump MSRV -> 1.63~~...
This commit introduce `block_on_timeout`, as well as `LocalPool::run_timeout` and `LocalPool::run_until_timeout`. The internal `run_executor` has been modified to use either `std::thread::park` or `std::thread::park_timeout`. In case of timeout, a `TimeoutError` instance is...
A common pattern for blocking functions in Rust is to provide a `_timeout` variant, see https://github.com/rust-lang/rust/issues/46316. However, this crate currently doesn't provide a way to interrupt blocking executions, which prevents...
an attempt to fix https://github.com/rust-lang/futures-rs/issues/2706 the waker mutex is used to protect the state transition that involves wakers (add, wake, re-wake), if a waker is called during the polling, it...
Hi @taiki-e! I found futures-rs `Select` has an unpin bound: ```rust pub struct Select { inner: Option, } ``` Seems it is for returning the unfinished future as part of...
The following code causes `Exited with status 101`. ```rust use futures::FutureExt; fn main() { futures::executor::block_on(async { let f = std::future::pending::(); let (remote, remote_handle) = f.remote_handle(); // poll remote at least...
The condition for `is_terminated` in the `FusedStream` impl for `Zip` should check if either child stream has terminated. Otherwise, one stream may be polled even after it has been terminated...
Timing out on `SinkExt::send` still causes the item to be re-inserted later into the bounded channel
When inserting an element into the bounded MPSC channel that is at full capacity, the `SinkExt::send` future correctly waits until there is space in the channel. However, if the `SinkExt::send`...