Crate async_slot [−] [src]
The crate provides an unbounded channel that only stores last value sent.
There are two implementations a one is traditionally called sync
in the
futures world. It works across threads. And the unsync
one, which only
works in single thread, but is potentially more performant.
The sync
one which should be used by default is also reexported at
the root of this crate.
Features
- Compacts memory (only last value is kept)
- Has
poll_cancel
andis_canceled
- Single-producer/single-consumer
- Never has backpressure (because value is just replaced)
- Replaced value can be recovered if using
swap
method. Sync
, so if multi-producer is desired,Sender
can be wrapped into anArc
/Rc
andswap
method is used to update value.
Example
let (tx, rx) = async_slot::channel::<i32>(); tx.send_all(iter_ok(vec![1, 2, 3])).wait(); let received = rx.collect().wait().unwrap(); assert_eq!(received, vec![3]);
Reexports
pub use sync::channel; |
pub use sync::Receiver; |
pub use sync::Sender; |
Modules
sync |
A thread-safe variant of an unbounded channel that only stores last value sent |
unsync |
A single-thread variant of an unbounded channel that only stores last value sent |
Structs
SendError |
Error type for sending, used when the receiving end of a channel is dropped |