• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Version 0.5.11
2
3- Remove dependency on `cfg-if`. (#1072)
4
5# Version 0.5.10
6
7- Relax the minimum supported Rust version to 1.60. (#1056)
8- Optimize `Drop` implementation of bounded channel. (#1057)
9
10# Version 0.5.9
11
12- Bump the minimum supported Rust version to 1.61. (#1037)
13
14# Version 0.5.8
15
16- Fix race condition in unbounded channel. (#972)
17
18# Version 0.5.7
19
20**Note:** This release has been yanked due to bug fixed in 0.5.8.
21
22- Improve handling of very large timeout. (#953)
23
24# Version 0.5.6
25
26**Note:** This release has been yanked due to bug fixed in 0.5.8.
27
28- Bump the minimum supported Rust version to 1.38. (#877)
29
30# Version 0.5.5
31
32**Note:** This release has been yanked due to bug fixed in 0.5.8.
33
34- Replace Spinlock with Mutex. (#835)
35
36# Version 0.5.4
37
38**Note:** This release has been yanked due to bug fixed in 0.5.8.
39
40- Workaround a bug in upstream related to TLS access on AArch64 Linux. (#802)
41
42# Version 0.5.3
43
44**Note:** This release has been yanked. See [#802](https://github.com/crossbeam-rs/crossbeam/issues/802) for details.
45
46- Fix panic on very large timeout. (#798)
47
48# Version 0.5.2
49
50**Note:** This release has been yanked. See [#802](https://github.com/crossbeam-rs/crossbeam/issues/802) for details.
51
52- Fix stacked borrows violations when `-Zmiri-tag-raw-pointers` is enabled. (#763, #764)
53
54# Version 0.5.1
55
56**Note:** This release has been yanked due to bug fixed in 0.5.8.
57
58- Fix memory leak in unbounded channel. (#669)
59
60# Version 0.5.0
61
62- Bump the minimum supported Rust version to 1.36.
63- Add `at()` function.
64- Add `Sender::send_deadline()` and `Receiver::recv_deadline()` methods.
65- Add `Select::select_deadline()` and `Select::ready_deadline()` methods.
66- Add `std` (enabled by default) feature for forward compatibility.
67- Allow `select!` macro compile with `forbid(unsafe_code)`.
68
69# Version 0.4.4
70
71- Fix bug in release (yanking 0.4.3)
72- Fix UB and breaking change introduced in 0.4.3
73
74# Version 0.4.3
75
76**Note:** This release has been yanked. See [GHSA-v5m7-53cv-f3hx](https://github.com/crossbeam-rs/crossbeam/security/advisories/GHSA-v5m7-53cv-f3hx) for details.
77
78- Change license to "MIT OR Apache-2.0".
79
80# Version 0.4.2
81
82- Fix bug in release (yanking 0.4.1)
83
84# Version 0.4.1
85
86- Avoid time drift in `channel::tick`. (#456)
87- Fix unsoundness issues by adopting `MaybeUninit`. (#458)
88
89# Version 0.4.0
90
91- Bump the minimum required version to 1.28.
92- Bump `crossbeam-utils` to `0.7`.
93
94# Version 0.3.9
95
96- Fix a bug in reference counting.
97- Optimize `recv_timeout()`.
98- Add `Select::remove()`.
99- Various small improvements, code cleanup, more tests.
100
101# Version 0.3.8
102
103- Bump the minimum required version of `crossbeam-utils`.
104
105# Version 0.3.7
106
107- Remove `parking_lot` and `rand` dependencies.
108- Expand documentation.
109- Implement `Default` for `Select`.
110- Make `size_of::<Receiver<T>>()` smaller.
111- Several minor optimizations.
112- Add more tests.
113
114# Version 0.3.6
115
116- Fix a bug in initialization of unbounded channels.
117
118# Version 0.3.5
119
120- New implementation for unbounded channels.
121- A number of small performance improvements.
122- Remove `crossbeam-epoch` dependency.
123
124# Version 0.3.4
125
126- Bump `crossbeam-epoch` to `0.7`.
127- Improve documentation.
128
129# Version 0.3.3
130
131- Relax the lifetime in `SelectedOperation<'_>`.
132- Add `Select::try_ready()`, `Select::ready()`, and `Select::ready_timeout()`.
133- Update licensing notices.
134- Improve documentation.
135- Add methods `is_disconnected()`, `is_timeout()`, `is_empty()`, and `is_full()` on error types.
136
137# Version 0.3.2
138
139- More elaborate licensing notices.
140
141# Version 0.3.1
142
143- Update `crossbeam-utils` to `0.6`.
144
145# Version 0.3.0
146
147- Add a special `never` channel type.
148- Dropping all receivers now closes the channel.
149- The interface of sending and receiving methods is now very similar to those in v0.1.
150- The syntax for `send` in `select!` is now `send(sender, msg) -> res => body`.
151- The syntax for `recv` in `select!` is now `recv(receiver) -> res => body`.
152- New, more efficient interface for `Select` without callbacks.
153- Timeouts can be specified in `select!`.
154
155# Version 0.2.6
156
157- `Select` struct that can add cases dynamically.
158- More documentation (in particular, the FAQ section).
159- Optimize contended sends/receives in unbounded channels.
160
161# Version 0.2.5
162
163- Use `LocalKey::try_with` instead of `LocalKey::with`.
164- Remove helper macros `__crossbeam_channel*`.
165
166# Version 0.2.4
167
168- Make `select!` linearizable with other channel operations.
169- Update `crossbeam-utils` to `0.5.0`.
170- Update `parking_lot` to `0.6.3`.
171- Remove Mac OS X tests.
172
173# Version 0.2.3
174
175- Add Mac OS X tests.
176- Lower some memory orderings.
177- Eliminate calls to `mem::unitialized`, which caused bugs with ZST.
178
179# Version 0.2.2
180
181- Add more tests.
182- Update `crossbeam-epoch` to 0.5.0
183- Initialize the RNG seed to a random value.
184- Replace `libc::abort` with `std::process::abort`.
185- Ignore clippy warnings in `select!`.
186- Better interaction of `select!` with the NLL borrow checker.
187
188# Version 0.2.1
189
190- Fix compilation errors when using `select!` with `#[deny(unsafe_code)]`.
191
192# Version 0.2.0
193
194- Implement `IntoIterator<Item = T>` for `Receiver<T>`.
195- Add a new `select!` macro.
196- Add special channels `after` and `tick`.
197- Dropping receivers doesn't close the channel anymore.
198- Change the signature of `recv`, `send`, and `try_recv`.
199- Remove `Sender::is_closed` and `Receiver::is_closed`.
200- Remove `Sender::close` and `Receiver::close`.
201- Remove `Sender::send_timeout` and `Receiver::recv_timeout`.
202- Remove `Sender::try_send`.
203- Remove `Select` and `select_loop!`.
204- Remove all error types.
205- Remove `Iter`, `TryIter`, and `IntoIter`.
206- Remove the `nightly` feature.
207- Remove ordering operators for `Sender` and `Receiver`.
208
209# Version 0.1.3
210
211- Add `Sender::disconnect` and `Receiver::disconnect`.
212- Implement comparison operators for `Sender` and `Receiver`.
213- Allow arbitrary patterns in place of `msg` in `recv(r, msg)`.
214- Add a few conversion impls between error types.
215- Add benchmarks for `atomicring` and `mpmc`.
216- Add benchmarks for different message sizes.
217- Documentation improvements.
218- Update `crossbeam-epoch` to 0.4.0
219- Update `crossbeam-utils` to 0.3.0
220- Update `parking_lot` to 0.5
221- Update `rand` to 0.4
222
223# Version 0.1.2
224
225- Allow conditional cases in `select_loop!` macro.
226- Fix typos in documentation.
227- Fix deadlock in selection when all channels are disconnected and a timeout is specified.
228
229# Version 0.1.1
230
231- Implement `Debug` for `Sender`, `Receiver`, `Iter`, `TryIter`, `IntoIter`, and `Select`.
232- Implement `Default` for `Select`.
233
234# Version 0.1.0
235
236- First implementation of the channels.
237- Add `select_loop!` macro by @TimNN.
238