All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
SendSink::sender
SendFut
,SendSink
,RecvFut
,RecvStream
,WeakSender
,Iter
,TryIter
, andIntoIter
now implementDebug
- Docs now show required features
WeakSender
is nowClone
spin
feature no longer usesstd::thread::sleep
for locking except on Unix-like operating systems and Windows- Flume is now in casual maintenance mode.
WeakSender
, a sender that doesn't keep the channel openSender/Receiver::sender_count/receiver_count
, a way to query the number of senders and receivers attached to a channelSender/Receiver::same_channel
, a way to determine whether senders and receivers are attached to the same channel
- Relaxed some API features
- Make all remaining spinlocks opt-in
- Fixed a rare race condition in the async implementation
- Fixed unbounded memory usage in
RecvFut::poll_inner
SendSink::sender
, to get the sender of aSendSink
- Updated
nanorand
to 0.7
- Out-of-order bug when using channels asynchronously
From<SendError>
andFrom<RecvError>
impls for other error types- Marked futures as
#[must_use]
- Switched to scheduler-driven locking by default, with a
spin
feature to reenable the old behaviour - Minor doc improvements
- Switched from
spinning_top
tospin
- Updated
nanorand
to0.6
- Removed accidental nightly-only syntax
fn into_inner(self) -> T
for send errors, allowing for easy access to the unsent message
is_disconnected
,is_empty
,is_full
,len
, andcapacity
on future types
- Shutdown-related race condition with async recv that caused spurious errors
- Compilation error when enabling
select
withouteventual_fairness
- Incorrect pointer comparison in
Selector
causing missing receives
- Removed
T: Unpin
requirement from async traits usingpin_project
- Renamed
SendFuture
toSendFut
to be consistent withRecvFut
- Improved async-related documentation
- Updated
nanorand
to address security advisory