no bug - Correct some typos in the comments. a=typo-fix
[gecko.git] / third_party / rust / mio / CHANGELOG.md
blob690d489c64276f834ba72953a5a1032b224533b1
1 # 0.8.8
3 ## Fixed
5 * Fix compilation on WASI (https://github.com/tokio-rs/mio/pull/1676).
7 # 0.8.7
9 ## Added
11 * Add/fix support for tvOS and watchOS, Mio should now build for tvOS and
12   watchOS, but we don't have a CI setup yet
13   (https://github.com/tokio-rs/mio/pull/1658).
15 ## Changed
17 * Made the `log` dependency optional behind the `log` feature flag (enabled by
18   default). Users that disabled Mio's default features will now not see any
19   logging from Mio, enabling the `log` feature will fix that. This was done in
20   response to the `log` crate increasing it's MSRV to v1.60, see
21   https://github.com/rust-lang/log/pull/552
22   (https://github.com/tokio-rs/mio/pull/1673).
23 * Update windows-sys dependency to v0.48
24   (https://github.com/tokio-rs/mio/pull/1663).
26 ## Fixed
28 * Fix overflow in `Poll::poll` when using `Duration::MAX` as timeout
29   (https://github.com/tokio-rs/mio/pull/1657).
31 # 0.8.6
33 ## Added
35 * `Interest::PRIORITY` on Linux and Android, to trigger `Event::is_priority`
36   (https://github.com/tokio-rs/mio/pull/1647).
38 ## Changed
40 * Updated windows-sys to 0.45
41   (https://github.com/tokio-rs/mio/pull/1644).
42 * We started testing with sanitizers on the CI
43   (https://github.com/tokio-rs/mio/pull/1648).
45 ## Fixed
47 * A number of potential fd leaks when setup resulted in an error right after
48   creation (https://github.com/tokio-rs/mio/pull/1636).
49 * Less truncating for timeout values in `Poll::poll`
50   (https://github.com/tokio-rs/mio/pull/1642).
52 # 0.8.5
54 ## Changed
56 * Updated `windows-sys` to 0.42.0
57   (https://github.com/tokio-rs/mio/pull/1624).
58 * Officially document Wine as not supported, some people claimed it worked,
59   other claims it doesn't, but nobody stepped up to fix the problem
60   (https://github.com/tokio-rs/mio/pull/1596).
61 * Switch to GitHub Actions
62   (https://github.com/tokio-rs/mio/pull/1598, https://github.com/tokio-rs/mio/pull/1601).
63 * Documented the current Poll::poll time behaviour
64   (https://github.com/tokio-rs/mio/pull/1603).
66 ## Fixed
68 * Timeout less than one millisecond becoming zero millsiconds
69   (https://github.com/tokio-rs/mio/pull/1615, https://github.com/tokio-rs/mio/pull/1616)
70 * Undefined reference to `epoll\_create1` on Android API level < 21.
71   (https://github.com/tokio-rs/mio/pull/1590).
73 # 0.8.4
75 ## Added
77 * Support `Registery::try_clone` on `wasm32-wasi`
78   (https://github.com/tokio-rs/mio/pull/1576).
79 * Add docs about polling without registering event sources
80   (https://github.com/tokio-rs/mio/pull/1585).
82 # 0.8.3
84 ## Changed
86 * Replace `winapi` dependency with `windows-sys`.
87   (https://github.com/tokio-rs/mio/pull/1556).
88 * Future proofed the kevent ABI for FreeBSD
89   (https://github.com/tokio-rs/mio/pull/1572).
91 ## Fixed
93 * Improved support for Redox, making it possible to run on stable Rust
94   (https://github.com/tokio-rs/mio/pull/1555).
95 * Don't ignore EAGAIN in UDS connect call
96   (https://github.com/tokio-rs/mio/pull/1564).
97 * Documentation of `TcpStream::connect`
98   (https://github.com/tokio-rs/mio/pull/1565).
100 # 0.8.2
102 ## Added
104 * Experimental support for Redox.
106 # 0.8.1
108 ## Added
110 * Add `try_io` method to all I/O types (#1551). This execute a user defined I/O
111   closure while updating Mio's internal state ensuring that the I/O type
112   receives more events if it hits a WouldBlock error. This is added to the
113   following types:
114    * `TcpStream`
115    * `UdpSocket`
116    * `UnixDatagram`
117    * `UnixStream`
118    * `unix::pipe::Sender`
119    * `unix::pipe::Receiver`
120 * Basic, experimental support for `wasm32-wasi` target (#1549). Note that a lot
121   of time type are still missing, e.g. the `Waker`, and may never be possible to
122   implement.
124 # 0.8.0
126 ## Removed
128 * Deprecated features (https://github.com/tokio-rs/mio/commit/105f8f2afb57b01ddea716a0aa9720f226c520e3):
129   * extra-docs (always enabled)
130   * tcp (replaced with "net" feature).
131   * udp (replaced with "net" feature).
132   * uds (replaced with "net" feature).
133   * pipe (replaced with "os-ext" feature).
134   * os-util (replaced with "os-ext" feature).
135 * `TcpSocket` type
136   (https://github.com/tokio-rs/mio/commit/02e9be41f27daf822575444fdd2b3067433a5996).
137   The socket2 crate provides all the functionality and more.
138 * Support for Solaris, it never really worked anyway
139   (https://github.com/tokio-rs/mio/pull/1528).
141 ## Changes
143 * Update minimum Rustc version (MSVR) to 1.46.0
144   (https://github.com/tokio-rs/mio/commit/5c577efecd23750a9a3e0f6ad080ab98f14a255d).
146 ## Added
148 * `UdpSocket::peer_addr`
149   (https://github.com/tokio-rs/mio/commit/5fc104d08e0e74c8a19247f7cba0f058699fc438).
151 # 0.7.14
153 ## Fixes
155 * Remove use unsound internal macro (#1519).
157 ## Added
159 * `sys::unix::SocketAddr::as_abstract_namespace()` (#1520).
161 # 0.7.13
163 ## Fixes
165 * Fix `Registry::try_clone` invalid usage of `F_DUPFD_CLOEXEC` (#1497,
166   https://github.com/tokio-rs/mio/commit/2883f5c1f35bf1a59682c5ffc4afe6b97d7d6e68).
168 # 0.7.12 (yanked)
170 ## Fixes
172 * Set `FD_CLOEXEC` when calling `Registry::try_clone`
173   (https://github.com/tokio-rs/mio/commit/d1617b567ff6bc669d71e367d22e0e93ff7e2e24 for epoll and
174   (https://github.com/tokio-rs/mio/commit/b367a05e408ca90a26383c3aa16d8a16f019dc59 for kqueue).
176 # 0.7.11
178 ## Fixes
180 * Fix missing feature of winapi.
181   (https://github.com/tokio-rs/mio/commit/a7e61db9e3c2b929ef1a33532bfcc22045d163ce).
183 # 0.7.10
185 ## Fixes
187 * Fix an instance of not doc(cfg(.*))
188   (https://github.com/tokio-rs/mio/commit/25e8f911357c740034f10a170dfa4ea1b28234ce).
190 # 0.7.9
192 ## Fixes
194 * Fix error handling in `NamedPipe::write`
195   (https://github.com/tokio-rs/mio/commit/aec872be9732e5c6685100674278be27f54a271b).
196 * Use `accept(2)` on x86 Android instead of `accept4(2)`
197   (https://github.com/tokio-rs/mio/commit/6f86b925d3e48f30905d5cfa54348acf3f1fa036,
198   https://github.com/tokio-rs/mio/commit/8d5414880ab82178305ac1d2c16d715e58633d3e).
199 * Improve error message when opening AFD device
200   (https://github.com/tokio-rs/mio/commit/139f7c4422321eb4a17b14ae2c296fddd19a8804).
202 # 0.7.8
204 ## Fixes
206 * Fix `TcpStream::set_linger` on macOS
207   (https://github.com/tokio-rs/mio/commit/175773ce02e85977db81224c782c8d140aba8543).
208 * Fix compilation on DragonFlyBSD
209   (https://github.com/tokio-rs/mio/commit/b51af46b28871f8dd3233b490ee62237ffed6a26).
211 # 0.7.7
213 ## Added
215 * `UdpSocket::only_v6`
216   (https://github.com/tokio-rs/mio/commit/0101e05a800f17fb88f4315d9b9fe0f08cca6e57).
217 * `Clone` implementation for `Event`
218   (https://github.com/tokio-rs/mio/commit/26540ebbae89df6d4d08465c56f715d8f2addfc3).
219 * `AsRawFd` implementation for `Registry`
220   (https://github.com/tokio-rs/mio/commit/f70daa72da0042b1880256164774c3286d315a02).
221 * `Read` and `Write` implementation for `&unix::pipe::Sender` and `Receiver`,
222   that is on the reference to them, an implementation existed on the types
223   themselves already
224   (https://github.com/tokio-rs/mio/commit/1be481dcbbcb6906364008b5d61e7f53cddc3eb3).
226 ## Fixes
228 * Underflow in `SocketAddr::address`
229   (https://github.com/tokio-rs/mio/commit/6d3fa69240cd4bb95e9d34605c660c30245a18bd).
230 * Android build with the net feature enabled, but with os-poll disabled
231   (https://github.com/tokio-rs/mio/commit/49d8fd33e026ad6e2c055d05d6667180ba2af7be).
232 * Solaris build with the net feature enabled, but with os-poll disabled
233   (https://github.com/tokio-rs/mio/commit/a6e025e9d9511639ec106ebedc0dd312bdc9be12).
234 * Ensure that `Waker::wake` works on illumos systems with poor `pipe(2)` and
235   `epoll(2)` interaction using `EPOLLET`
236   (https://github.com/tokio-rs/mio/commit/943d4249dcc17cd8b4d2250c4fa19116097248fa).
237 * Fix `unix::pipe` on illumos
238   (https://github.com/tokio-rs/mio/commit/0db49f6d5caf54b12176821363d154384357e70a).
240 # 0.7.6
242 ## Added
244 * `net` feature, replaces `tcp`, `udp` and `uds` features
245   (https://github.com/tokio-rs/mio/commit/a301ba520a8479b459c4acdcefa4a7c5eea818c7).
246 * `os-ext` feature, replaces `os-util` and `pipe` features
247   (https://github.com/tokio-rs/mio/commit/f5017fae8a3d3bb4b4cada25b01a2d76a406badc).
248 * Added keepalive support to `TcpSocket`
249   (https://github.com/tokio-rs/mio/commit/290c43a96662d54ab7c4b8814e5a9f9a9e523fda).
250 * `TcpSocket::set_{send, recv}_buffer_size`
251   (https://github.com/tokio-rs/mio/commit/40c4af79bf5b32b8fbdbf6f2e5c16290e1d3d406).
252 * `TcpSocket::get_linger`
253   (https://github.com/tokio-rs/mio/commit/13e82ced655bbb6e2729226e485a7de9f2c2ccd9).
254 * Implement `IntoRawFd` for `TcpSocket`
255   (https://github.com/tokio-rs/mio/commit/50548ed45d0b2c98f1f2e003e210d14195284ef4).
257 ## Deprecated
259 * The `tcp`, `udp` and `uds` features, replaced by a new `net` feature.
260   (https://github.com/tokio-rs/mio/commit/a301ba520a8479b459c4acdcefa4a7c5eea818c7).
261 * The `extra-docs` feature, now enabled by default.
262   (https://github.com/tokio-rs/mio/commit/25731e8688a2d91c5c700674a2c2d3841240ece1).
263 * The `os-util` and `pipe` features, replaced by a new `os-ext` feature.
264   (https://github.com/tokio-rs/mio/commit/f5017fae8a3d3bb4b4cada25b01a2d76a406badc).
266 ## Fixes
268 * Incorrect assumption of the layout of `std::net::SocketAddr`. Previously Mio
269   would assume that `SocketAddrV{4,6}` had the same layout as
270   `libc::sockaddr_in(6)`, however this is not guaranteed by the standard
271   library.
272   (https://github.com/tokio-rs/mio/commit/152e0751f0be1c9b0cbd6778645b76bcb0eba93c).
273 * Also bumped the miow dependency to version 0.3.6 to solve the same problem as
274   above.
276 # 0.7.5
278 ## Added
280 * `TcpSocket::get_localaddr()` retrieves local address
281   (https://github.com/tokio-rs/mio/commit/b41a022b2242eef1969c70c8ba93e04c528dba47).
282 * `TcpSocket::set_reuseport()` & `TcpSocket::get_reuseport()` configures and reads `SO_REUSEPORT`
283   (https://github.com/tokio-rs/mio/commit/183bbe409ab69cbf9db41d0263b41ec86202d9a0).
284 * `unix:pipe()` a wrapper around pipe(2) sys call
285   (https://github.com/tokio-rs/mio/commit/2b7c0967a7362303946deb3d4ca2ae507af6c72d).
286 * Add a check that a single Waker is active per Poll instance (only in debug mode)
287   (https://github.com/tokio-rs/mio/commit/f4874f28b32efcf4841691884c65a89734d96a56).
288 * Added `Interest:remove()`
289   (https://github.com/tokio-rs/mio/commit/b8639c3d9ac07bb7e2e27685680c8a6510fa1357).
291 # 0.7.4
293 ## Fixes
295 * lost "socket closed" events on windows
296   (https://github.com/tokio-rs/mio/commit/50c299aca56c4a26e5ed20c283007239fbe6a7a7).
298 ## Added
300 * `TcpSocket::set_linger()` configures SO_LINGER
301   (https://github.com/tokio-rs/mio/commit/3b4096565c1a879f651b8f8282ecdcbdbd5c92d3).
303 # 0.7.3
305 ## Added
307 * `TcpSocket` for configuring a TCP socket before connecting or listening
308   (https://github.com/tokio-rs/mio/commit/5b09e60d0f64419b989bda88c86a3147334a03b3).
310 # 0.7.2
312 ## Added
314 * Windows named pipe support.
315   (https://github.com/tokio-rs/mio/commit/52e8c2220e87696d20f13561402bcaabba4136ed).
317 # 0.7.1
319 ## Reduced support for 32-bit Apple targets
321 In January 2020 Rust reduced its support for 32-bit Apple targets
322 (https://blog.rust-lang.org/2020/01/03/reducing-support-for-32-bit-apple-targets.html).
323 Starting with v0.7.1 Mio will do the same as we're no longer checking 32 bit
324 iOS/macOS on our CI.
326 ## Added
328 * Support for illumos
329   (https://github.com/tokio-rs/mio/commit/976f2354d0e8fbbb64fba3bf017d7131f9c369a0).
330 * Report `epoll(2)`'s `EPOLLERR` event as `Event::is_write_closed` if it's the
331   only event
332   (https://github.com/tokio-rs/mio/commit/0c77b5712d675eeb9bd43928b5dd7d22b2c7ac0c).
333 * Optimised event::Iter::{size_hint, count}
334   (https://github.com/tokio-rs/mio/commit/40df934a11b05233a7796c4de19a4ee06bc4e03e).
336 ## Fixed
338 * Work around Linux kernel < 2.6.37 bug on 32-bits making timeouts longer then
339   ~30 minutes effectively infinite
340   (https://github.com/tokio-rs/mio/commit/d555991f5ee81f6c1eec0fe481557d3d5b8d5ff4).
341 * Set `SO_NOSIGPIPE` on all sockets (not just UDP) on for Apple targets
342   (https://github.com/tokio-rs/mio/commit/b8bbdcb0d3236f4c4acb257996d42a88dc9987d9).
343 * Properly handle `POLL_ABORT` on Windows
344   (https://github.com/tokio-rs/mio/commit/a98da62b3ed1eeed1770aaca12f46d647e4fa749).
345 * Improved error handling around failing `SIO_BASE_HANDLE` calls on Windows
346   (https://github.com/tokio-rs/mio/commit/b15fc18458a79ef8a51f73effa92548650f4e5dc).
348 ## Changed
350 * On NetBSD we now use `accept4(2)`
351   (https://github.com/tokio-rs/mio/commit/4e306addc7144f2e02a7e8397c220b179a006a19).
352 * The package uploaded to crates.io should be slightly smaller
353   (https://github.com/tokio-rs/mio/commit/eef8d3b9500bc0db957cd1ac68ee128ebc68351f).
355 ## Removed
357 * Dependency on `lazy_static` on Windows
358   (https://github.com/tokio-rs/mio/commit/57e4c2a8ac153bc7bb87829e22cf0a21e3927e8a).
360 # 0.7.0
362 Version 0.7 of Mio contains various major changes compared to version 0.6.
363 Overall a large number of API changes have been made to reduce the complexity of
364 the implementation and remove overhead where possible.
366 Please refer to the [blog post about
367 0.7-alpha.1](https://tokio.rs/blog/2019-12-mio-v0.7-alpha.1/) for additional
368 information.
370 ## Added
372 * `Interest` structure that replaces `Ready` in registering event sources.
373 * `Registry` structure that separates the registering and polling functionality.
374 * `Waker` structure that allows another thread to wake a thread polling `Poll`.
375 * Unix Domain Socket (UDS) types: `UnixDatagram`, `UnixListener` and
376   `UnixStream`.
378 ## Removed
380 * All code deprecated in 0.6 was removed in 0.7.
381 * Support for Fuchsia was removed as the code was unmaintained.
382 * Support for Bitrig was removed, rustc dropped support for it also.
383 * `UnixReady` was merged into `Ready`.
384 * Custom user-space readiness queue was removed, this includes the public
385   `Registration` and `SetReadiness` types.
386 * `PollOpt` was removed and all registrations use edge-triggers. See the upgrade
387   guide on how to process event using edge-triggers.
388 * The network types (types in the `net` module) now support only the same API as
389   found in the standard library, various methods on the types were removed.
390 * `TcpStream` now supports vectored I/O.
391 * `Poll::poll_interruptible` was removed. Instead `Poll::poll` will now return
392   an error if one occurs.
393 * `From<usize>` is removed from `Token`, the internal field is still public, so
394   `Token(my_token)` can still be used.
396 ## Changed
398 * Various documentation improvements were made around correct usage of `Poll`
399   and registered event sources. It is recommended to reread the documentation of
400   at least `event::Source` and `Poll`.
401 * Mio now uses Rust 2018 and rustfmt for all code.
402 * `Event` was changed to be a wrapper around the OS event. This means it can be
403   significantly larger on some OSes.
404 * `Ready` was removed and replaced with various `is_*` methods on `Event`. For
405   example instead checking for readable readiness using
406   `Event::ready().is_readable()`, you would call `Event::is_readable()`.
407 * `Ready::is_hup` was removed in favour of `Event::is_read_closed` and
408   `Event::is_write_closed`.
409 * The Iterator implementation of `Events` was changed to return `&Event`.
410 * `Evented` was renamed to `event::Source` and now takes mutable reference to
411   the source.
412 * Minimum supported Rust version was increased to 1.39.
413 * By default Mio now uses a shim implementation. To enable the full
414   implementation, that uses the OS, enable the `os-oll` feature. To enable the
415   network types use `tcp`, `udp` and/or `uds`. For more documentation on the
416   features see the `feature` module in the API documentation (requires the
417   `extra-docs` feature).
418 * The entire Windows implementation was rewritten.
419 * Various optimisation were made to reduce the number of system calls in
420   creating and using sockets, e.g. making use of `accept4(2)`.
421 * The `fmt::Debug` implementation of `Events` is now actually useful as it
422   prints all `Event`s.
424 # 0.6.23 (Dec 01, 2020)
426 ### Changed
427 - **MSRV**: Increased the MSRV from 1.18.0 (Jun 8, 2017) to 1.31.0 (Dec 6,
428   2018)
429   (https://github.com/tokio-rs/mio/commit/4879e0d32ddfd98e762fc87240e594a3ad8fca30).
431 ### Fixed
432 - Work around Linux kernel < 2.6.37 bug on 32-bits making timeouts longer then
433   ~30 minutes effectively infinite
434   (https://github.com/tokio-rs/mio/commit/e7cba59950e9c9fa6194e29b5b1e72029e3df455).
435 - Update miow and net2 depedencies to get rid of invalid memory layout assumption
436   (https://github.com/tokio-rs/mio/commit/13f02ac0a86d7c0c0001e5ff8960a0b4340d075c).
438 # 0.6.22 (May 01, 2020)
440 ### Added
441 - Add support for illumos target (#1294)
443 # 0.6.21 (November 27, 2019)
445 ### Fixed
446 - remove `=` dependency on `cfg-if`.
448 # 0.6.20 (November 21, 2019)
450 ### Fixed
451 - Use default IOCP concurrency value (#1161).
452 - setting FD_CLOEXEC in pipe (#1095).
454 # 0.6.19 (May 28, 2018)
456 ### Fixed
457 - Do not trigger HUP events on kqueue platforms (#958).
459 # 0.6.18 (May 24, 2018)
461 ### Fixed
462 - Fix compilation on kqueue platforms with 32bit C long (#948).
464 # 0.6.17 (May 15, 2018)
466 ### Fixed
467 - Don't report `RDHUP` as `HUP` (#939)
468 - Fix lazycell related compilation issues.
469 - Fix EPOLLPRI conflicting with READABLE
470 - Abort process on ref count overflows
472 ### Added
473 - Define PRI on all targets
475 # 0.6.16 (September 5, 2018)
477 * Add EPOLLPRI readiness to UnixReady on supported platforms (#867)
478 * Reduce spurious awaken calls (#875)
480 # 0.6.15 (July 3, 2018)
482 * Implement `Evented` for containers (#840).
483 * Fix android-aarch64 build (#850).
485 # 0.6.14 (March 8, 2018)
487 * Add `Poll::poll_interruptible` (#811)
488 * Add `Ready::all` and `usize` conversions (#825)
490 # 0.6.13 (February 5, 2018)
492 * Fix build on DragonFlyBSD.
493 * Add `TcpListener::from_std` that does not require the socket addr.
494 * Deprecate `TcpListener::from_listener` in favor of from_std.
496 # 0.6.12 (January 5, 2018)
498 * Add `TcpStream::peek` function (#773).
499 * Raise minimum Rust version to 1.18.0.
500 * `Poll`: retry select() when interrupted by a signal (#742).
501 * Deprecate `Events` index access (#713).
502 * Add `Events::clear` (#782).
503 * Add support for `lio_listio` (#780).
505 # 0.6.11 (October 25, 2017)
507 * Allow register to take empty interest (#640).
508 * Fix bug with TCP errors on windows (#725).
509 * Add TcpListener::accept_std (#733).
510 * Update IoVec to fix soundness bug -- includes behavior change. (#747).
511 * Minimum Rust version is now 1.14.0.
512 * Fix Android x86_64 build.
513 * Misc API & doc polish.
515 # 0.6.10 (July 27, 2017)
517 * Experimental support for Fuchsia
518 * Add `only_v6` option for UDP sockets
519 * Fix build on NetBSD
520 * Minimum Rust version is now 1.13.0
521 * Assignment operators (e.g. `|=`) are now implemented for `Ready`
523 # 0.6.9 (June 7, 2017)
525 * More socket options are exposed through the TCP types, brought in through the
526   `net2` crate.
528 # 0.6.8 (May 26, 2017)
530 * Support Fuchia
531 * POSIX AIO support
532 * Fix memory leak caused by Register::new2
533 * Windows: fix handling failed TCP connections
534 * Fix build on aarch64-linux-android
535 * Fix usage of `O_CLOEXEC` with `SETFL`
537 # 0.6.7 (April 27, 2017)
539 * Ignore EPIPE coming out of `kevent`
540 * Timer thread should exit when timer is dropped.
542 # 0.6.6 (March 22, 2017)
544 * Add send(), recv() and connect() to UDPSocket.
545 * Fix bug in custom readiness queue
546 * Move net types into `net` module
548 # 0.6.5 (March 14, 2017)
550 * Misc improvements to kqueue bindings
551 * Add official support for iOS, Android, BSD
552 * Reimplement custom readiness queue
553 * `Poll` is now `Sync`
554 * Officially deprecate non-core functionality (timers, channel, etc...)
555 * `Registration` now implements `Evented`
556 * Fix bug around error conditions with `connect` on windows.
557 * Use iovec crate for scatter / gather operations
558 * Only support readable and writable readiness on all platforms
559 * Expose additional readiness in a platform specific capacity
561 # 0.6.4 (January 24, 2017)
563 * Fix compilation on musl
564 * Add `TcpStream::from_stream` which converts a std TCP stream to Mio.
566 # 0.6.3 (January 22, 2017)
568 * Implement readv/writev for `TcpStream`, allowing vectored reads/writes to
569   work across platforms
570 * Remove `nix` dependency
571 * Implement `Display` and `Error` for some channel error types.
572 * Optimize TCP on Windows through `SetFileCompletionNotificationModes`
574 # 0.6.2 (December 18, 2016)
576 * Allow registration of custom handles on Windows (like `EventedFd` on Unix)
577 * Send only one byte for the awakener on Unix instead of four
578 * Fix a bug in the timer implementation which caused an infinite loop
580 # 0.6.1 (October 30, 2016)
582 * Update dependency of `libc` to 0.2.16
583 * Fix channel `dec` logic
584 * Fix a timer bug around timeout cancellation
585 * Don't allocate buffers for TCP reads on Windows
586 * Touched up documentation in a few places
587 * Fix an infinite looping timer thread on OSX
588 * Fix compile on 32-bit OSX
589 * Fix compile on FreeBSD
591 # 0.6.0 (September 2, 2016)
593 * Shift primary API towards `Poll`
594 * `EventLoop` and types to `deprecated` mod. All contents of the
595   `deprecated` mod will be removed by Mio 1.0.
596 * Increase minimum supported Rust version to 1.9.0
597 * Deprecate unix domain socket implementation in favor of using a
598   version external to Mio. For example: https://github.com/alexcrichton/mio-uds.
599 * Remove various types now included in `std`
600 * Updated TCP & UDP APIs to match the versions in `std`
601 * Enable implementing `Evented` for any type via `Registration`
602 * Rename `IoEvent` -> `Event`
603 * Access `Event` data via functions vs. public fields.
604 * Expose `Events` as a public type that is passed into `Poll`
605 * Use `std::time::Duration` for all APIs that require a time duration.
606 * Polled events are now retrieved via `Events` type.
607 * Implement `std::error::Error` for `TimerError`
608 * Relax `Send` bound on notify messages.
609 * Remove `Clone` impl for `Timeout` (future proof)
610 * Remove `mio::prelude`
611 * Remove `mio::util`
612 * Remove dependency on bytes
614 # 0.5.0 (December 3, 2015)
616 * Windows support (#239)
617 * NetBSD support (#306)
618 * Android support (#295)
619 * Don't re-export bytes types
620 * Renamed `EventLoop::register_opt` to `EventLoop::register` (#257)
621 * `EventLoopConfig` is now a builder instead of having public struct fields. It
622   is also no longer `Copy`. (#259)
623 * `TcpSocket` is no longer exported in the public API (#262)
624 * Integrate with net2. (#262)
625 * `TcpListener` now returns the remote peer address from `accept` as well (#275)
626 * The `UdpSocket::{send_to, recv_from}` methods are no longer generic over `Buf`
627   or `MutBuf` but instead take slices directly. The return types have also been
628   updated to return the number of bytes transferred. (#260)
629 * Fix bug with kqueue where an error on registration prevented the
630   changelist from getting flushed (#276)
631 * Support sending/receiving FDs over UNIX sockets (#291)
632 * Mio's socket types are permanently associated with an EventLoop (#308)
633 * Reduce unnecessary poll wakeups (#314)
636 # 0.4.1 (July 21, 2015)
638 * [BUGFIX] Fix notify channel concurrency bug (#216)
640 # 0.4.0 (July 16, 2015)
642 * [BUGFIX] EventLoop::register requests all events, not just readable.
643 * [BUGFIX] Attempting to send a message to a shutdown event loop fails correctly.
644 * [FEATURE] Expose TCP shutdown
645 * [IMPROVEMENT] Coalesce readable & writable into `ready` event (#184)
646 * [IMPROVEMENT] Rename TryRead & TryWrite function names to avoid conflict with std.
647 * [IMPROVEMENT] Provide TCP and UDP types in Mio (path to windows #155)
648 * [IMPROVEMENT] Use clock_ticks crate instead of time (path to windows #155)
649 * [IMPROVEMENT] Move unix specific features into mio::unix module
650 * [IMPROVEMENT] TcpListener sets SO_REUSEADDR by default