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.
0.3.0 - 2018-11-04
- Add a special
never
channel type.
- Dropping all receivers now closes the channel.
- The interface of sending and receiving methods is now very similar to those in v0.1.
- The syntax for
send
inselect!
is nowsend(sender, msg) -> res => body
. - The syntax for
recv
inselect!
is nowrecv(receiver) -> res => body
. - New, more efficient interface for
Select
without callbacks. - Timeouts can be specified in
select!
.
0.2.6 - 2018-09-17
Select
struct that can add cases dynamically.- More documentation (in particular, the FAQ section).
- Optimize contended sends/receives in unbounded channels.
0.2.5 - 2018-09-11
- Use
LocalKey::try_with
instead ofLocalKey::with
.
- Remove helper macros
__crossbeam_channel*
.
0.2.4 - 2018-08-02
- Make
select!
linearizable with other channel operations. - Update
crossbeam-utils
to0.5.0
. - Update
parking_lot
to0.6.3
.
- Remove Mac OS X tests.
0.2.3 - 2018-07-21
- Add Mac OS X tests.
- Lower some memory orderings.
- Eliminate calls to
mem::unitialized
, which caused bugs with ZST.
0.2.2 - 2018-07-10
- Add more tests.
- Update
crossbeam-epoch
to 0.5.0 - Initialize the RNG seed to a random value.
- Replace
libc::abort
withstd::process::abort
.
- Ignore clippy warnings in
select!
. - Better interaction of
select!
with the NLL borrow checker.
0.2.1 - 2018-06-12
- Fix compilation errors when using
select!
with#[deny(unsafe_code)]
.
0.2.0 - 2018-06-11
- Implement
IntoIterator<Item = T>
forReceiver<T>
. - Add a new
select!
macro. - Add special channels
after
andtick
.
- Dropping receivers doesn't close the channel anymore.
- Change the signature of
recv
,send
, andtry_recv
.
- Remove
Sender::is_closed
andReceiver::is_closed
. - Remove
Sender::close
andReceiver::close
. - Remove
Sender::send_timeout
andReceiver::recv_timeout
. - Remove
Sender::try_send
. - Remove
Select
andselect_loop!
. - Remove all error types.
- Remove
Iter
,TryIter
, andIntoIter
. - Remove the
nightly
feature. - Remove ordering operators for
Sender
andReceiver
.
0.1.3 - 2018-05-23
- Add
Sender::disconnect
andReceiver::disconnect
. - Implement comparison operators for
Sender
andReceiver
. - Allow arbitrary patterns in place of
msg
inrecv(r, msg)
. - Add a few conversion impls between error types.
- Add benchmarks for
atomicring
andmpmc
. - Add benchmarks for different message sizes.
- Documentation improvements.
- Update
crossbeam-epoch
to 0.4.0 - Update
crossbeam-utils
to 0.3.0 - Update
parking_lot
to 0.5 - Update
rand
to 0.4
0.1.2 - 2017-12-12
- Allow conditional cases in
select_loop!
macro.
- Fix typos in documentation.
- Fix deadlock in selection when all channels are disconnected and a timeout is specified.
0.1.1 - 2017-11-27
- Implement
Debug
forSender
,Receiver
,Iter
,TryIter
,IntoIter
, andSelect
. - Implement
Default
forSelect
.
- First implementation of the channels.
- Add
select_loop!
macro by @TimNN.