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