Comments (5)
I don't think these'd be too difficult to implement, but @carllerche do you have a use case in mind as well? It might be good to have one just to help designing the APIs to work with it.
from futures-rs.
Off the top of my head, a Task
is managing a Tcp connection for a client. The client handle sends requests to the connection task using a channel. The connection errors. It would be nice for the channel that sends requests to be closed cleanly. Aka, the consuming end can drop knowing that it received all pending requests and completed them w/ an error and that the client handle will not be able to send any further requests to the dead connection.
Hope this makes sense.
from futures-rs.
I've run into the exact problem @carllerche describes with mpsc::channel. Atomic close and drain from the receiver side would be nice to have here.
from futures-rs.
Ok I think that makes sense yeah. I think this is going to need coordination/APIs on both ends. That is, the producer half will need a Result
of some form to hand back the message or at least indicate that delivery failed. The production half probably just needs a try_release
method of some form then that attempts to shut down the channel but fails if there's items in flight.
I think for stream::channel
we have a vector to return the item with a result, but for oneshot
we do not. This can likely be solved by just returning a result from complete
, akin to SendError
in mpsc
from futures-rs.
added to channel
in #245
from futures-rs.
Related Issues (20)
- parse error in `select!`/`select_biased!` macro HOT 2
- Error on OSX by futures-executir HOT 1
- Consider removing ArcWake, re-export std::task::Wake HOT 3
- Fine-tune the Ordering for num_senders
- Feature Request: make FuturesUnordered splitable.
- `FuturesUnordered` guaranties
- Unbounded memory use of `futures::channel::mpsc` with `SinkExt::feed`
- Question: futures-rs::channels implement Send trait HOT 1
- Non-send future produced by chaining `Stream` combinators HOT 1
- Behavior of any() / all() / try_any() / try_all() is not documented for empty stream
- Feature request: add `StreamExt::eq` like `Iterator::eq`
- Reusing `AbortRegistration`
- ConcurrentStream usage with tokio leads to ACCESS_VIOLATION HOT 3
- [Discussion] `Shared` seems to wake up the same waker that was polling it HOT 1
- Add `StreamExt::map_while`
- io: impl AsyncWrite for Empty
- Stream & Sink Error types could benefit from core::fmt::Debug bound HOT 1
- implement OwnedMappedMutexGuard
- `StreamExt::scan` lacks a non-Option version
- returning a future from a function with an `impl Trait` argument references that argument even if not used in the future, causing lifetime errors HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from futures-rs.