Comments (2)
Interesting gotcha! Haven't thought about it myself, since I didn't use the Oneshots so far.
In general, I'm not sure why the OneshotReceiver can't implement Future directly
This could work, but requires the Receiver
to store the the future internally - essentially what is now the ChannelReceiveFuture
would become the Receiver
. The downside is that this would make it !Unpin
. Depending on the use-case it might make it more painful to work with.
Another option is that calling receive
consumes the Receiver
without closing the channel.
I'm not opposed on changing the behavior to any of those. However it's a breaking change
from futures-intrusive.
The downside is that this would make it !Unpin.
True. I don't see this as a huge downside, since anyone holding (but not polling) a Receiver
can wrap it with a struct that is Unpin
, but it is a bit annoying.
Another option is that calling receive consumes the Receiver without closing the channel.
This would be good as well. This makes sense to me too since I'm not sure what it means for multiple receive futures to exist on the same channel.
from futures-intrusive.
Related Issues (20)
- Channels with growing capacity HOT 2
- GenericWaitForEventFuture doesn't handle task migration. HOT 3
- GenericSemaphoreAcquireFuture isn't Sync HOT 7
- `Semaphore` cost O(waiters) time to wake up on, and quadratic in total HOT 2
- Channel::close should return previous state
- Unwind safety HOT 4
- GenericOneshotBroadcastReceiver incorrectly requires MutexType to be Clone HOT 4
- LocalChannel backed by non-ArrayBuf RingBuf HOT 2
- NoopLock is unsound HOT 7
- Update `parking_lot` and `lock_api` HOT 1
- Pulling out intrusive data structures into another crate HOT 2
- GenericMutexGuard should be marked !Sync HOT 3
- Cut New Release With Updated Dependencies HOT 1
- Does this crate alias mutable references? HOT 1
- Add a mechanism to wake-up an external eventloop when a timer is inserted
- Maintenance Status HOT 1
- Possible breaking change in 0.4.1 release HOT 2
- Use alloc instead of std HOT 2
- Support a shared Semaphor HOT 5
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-intrusive.