1# 0.6.23 (Dec 01, 2020) 2 3### Changed 4- **MSRV**: Increased the MSRV from 1.18.0 (Jun 8, 2017) to 1.31.0 (Dec 6, 5 2018) 6 (https://github.com/tokio-rs/mio/commit/4879e0d32ddfd98e762fc87240e594a3ad8fca30). 7 8### Fixed 9- Work around Linux kernel < 2.6.37 bug on 32-bits making timeouts longer then 10 ~30 minutes effectively infinite 11 (https://github.com/tokio-rs/mio/commit/e7cba59950e9c9fa6194e29b5b1e72029e3df455). 12- Update miow and net2 depedencies to get rid of invalid memory layout assumption 13 (https://github.com/tokio-rs/mio/commit/13f02ac0a86d7c0c0001e5ff8960a0b4340d075c). 14 15# 0.6.22 (May 01, 2020) 16 17### Added 18- Add support for illumos target (#1294) 19 20# 0.6.21 (November 27, 2019) 21 22### Fixed 23- remove `=` dependency on `cfg-if`. 24 25# 0.6.20 (November 21, 2019) 26 27### Fixed 28- Use default IOCP concurrency value (#1161). 29- setting FD_CLOEXEC in pipe (#1095). 30 31# 0.6.19 (May 28, 2018) 32 33### Fixed 34- Do not trigger HUP events on kqueue platforms (#958). 35 36# 0.6.18 (May 24, 2018) 37 38### Fixed 39- Fix compilation on kqueue platforms with 32bit C long (#948). 40 41# 0.6.17 (May 15, 2018) 42 43### Fixed 44- Don't report `RDHUP` as `HUP` (#939) 45- Fix lazycell related compilation issues. 46- Fix EPOLLPRI conflicting with READABLE 47- Abort process on ref count overflows 48 49### Added 50- Define PRI on all targets 51 52# 0.6.16 (September 5, 2018) 53 54* Add EPOLLPRI readiness to UnixReady on supported platforms (#867) 55* Reduce spurious awaken calls (#875) 56 57# 0.6.15 (July 3, 2018) 58 59* Implement `Evented` for containers (#840). 60* Fix android-aarch64 build (#850). 61 62# 0.6.14 (March 8, 2018) 63 64* Add `Poll::poll_interruptible` (#811) 65* Add `Ready::all` and `usize` conversions (#825) 66 67# 0.6.13 (February 5, 2018) 68 69* Fix build on DragonFlyBSD. 70* Add `TcpListener::from_std` that does not require the socket addr. 71* Deprecate `TcpListener::from_listener` in favor of from_std. 72 73# 0.6.12 (January 5, 2018) 74 75* Add `TcpStream::peek` function (#773). 76* Raise minimum Rust version to 1.18.0. 77* `Poll`: retry select() when interrupted by a signal (#742). 78* Deprecate `Events` index access (#713). 79* Add `Events::clear` (#782). 80* Add support for `lio_listio` (#780). 81 82# 0.6.11 (October 25, 2017) 83 84* Allow register to take empty interest (#640). 85* Fix bug with TCP errors on windows (#725). 86* Add TcpListener::accept_std (#733). 87* Update IoVec to fix soundness bug -- includes behavior change. (#747). 88* Minimum Rust version is now 1.14.0. 89* Fix Android x86_64 build. 90* Misc API & doc polish. 91 92# 0.6.10 (July 27, 2017) 93 94* Experimental support for Fuchsia 95* Add `only_v6` option for UDP sockets 96* Fix build on NetBSD 97* Minimum Rust version is now 1.13.0 98* Assignment operators (e.g. `|=`) are now implemented for `Ready` 99 100# 0.6.9 (June 7, 2017) 101 102* More socket options are exposed through the TCP types, brought in through the 103 `net2` crate. 104 105# 0.6.8 (May 26, 2017) 106 107* Support Fuchia 108* POSIX AIO support 109* Fix memory leak caused by Register::new2 110* Windows: fix handling failed TCP connections 111* Fix build on aarch64-linux-android 112* Fix usage of `O_CLOEXEC` with `SETFL` 113 114# 0.6.7 (April 27, 2017) 115 116* Ignore EPIPE coming out of `kevent` 117* Timer thread should exit when timer is dropped. 118 119# 0.6.6 (March 22, 2017) 120 121* Add send(), recv() and connect() to UDPSocket. 122* Fix bug in custom readiness queue 123* Move net types into `net` module 124 125# 0.6.5 (March 14, 2017) 126 127* Misc improvements to kqueue bindings 128* Add official support for iOS, Android, BSD 129* Reimplement custom readiness queue 130* `Poll` is now `Sync` 131* Officially deprecate non-core functionality (timers, channel, etc...) 132* `Registration` now implements `Evented` 133* Fix bug around error conditions with `connect` on windows. 134* Use iovec crate for scatter / gather operations 135* Only support readable and writable readiness on all platforms 136* Expose additional readiness in a platform specific capacity 137 138# 0.6.4 (January 24, 2017) 139 140* Fix compilation on musl 141* Add `TcpStream::from_stream` which converts a std TCP stream to Mio. 142 143# 0.6.3 (January 22, 2017) 144 145* Implement readv/writev for `TcpStream`, allowing vectored reads/writes to 146 work across platforms 147* Remove `nix` dependency 148* Implement `Display` and `Error` for some channel error types. 149* Optimize TCP on Windows through `SetFileCompletionNotificationModes` 150 151# 0.6.2 (December 18, 2016) 152 153* Allow registration of custom handles on Windows (like `EventedFd` on Unix) 154* Send only one byte for the awakener on Unix instead of four 155* Fix a bug in the timer implementation which caused an infinite loop 156 157# 0.6.1 (October 30, 2016) 158 159* Update dependency of `libc` to 0.2.16 160* Fix channel `dec` logic 161* Fix a timer bug around timeout cancellation 162* Don't allocate buffers for TCP reads on Windows 163* Touched up documentation in a few places 164* Fix an infinite looping timer thread on OSX 165* Fix compile on 32-bit OSX 166* Fix compile on FreeBSD 167 168# 0.6.0 (September 2, 2016) 169 170* Shift primary API towards `Poll` 171* `EventLoop` and types to `deprecated` mod. All contents of the 172 `deprecated` mod will be removed by Mio 1.0. 173* Increase minimum supported Rust version to 1.9.0 174* Deprecate unix domain socket implementation in favor of using a 175 version external to Mio. For example: https://github.com/alexcrichton/mio-uds. 176* Remove various types now included in `std` 177* Updated TCP & UDP APIs to match the versions in `std` 178* Enable implementing `Evented` for any type via `Registration` 179* Rename `IoEvent` -> `Event` 180* Access `Event` data via functions vs. public fields. 181* Expose `Events` as a public type that is passed into `Poll` 182* Use `std::time::Duration` for all APIs that require a time duration. 183* Polled events are now retrieved via `Events` type. 184* Implement `std::error::Error` for `TimerError` 185* Relax `Send` bound on notify messages. 186* Remove `Clone` impl for `Timeout` (future proof) 187* Remove `mio::prelude` 188* Remove `mio::util` 189* Remove dependency on bytes 190 191# 0.5.0 (December 3, 2015) 192 193* Windows support (#239) 194* NetBSD support (#306) 195* Android support (#295) 196* Don't re-export bytes types 197* Renamed `EventLoop::register_opt` to `EventLoop::register` (#257) 198* `EventLoopConfig` is now a builder instead of having public struct fields. It 199 is also no longer `Copy`. (#259) 200* `TcpSocket` is no longer exported in the public API (#262) 201* Integrate with net2. (#262) 202* `TcpListener` now returns the remote peer address from `accept` as well (#275) 203* The `UdpSocket::{send_to, recv_from}` methods are no longer generic over `Buf` 204 or `MutBuf` but instead take slices directly. The return types have also been 205 updated to return the number of bytes transferred. (#260) 206* Fix bug with kqueue where an error on registration prevented the 207 changelist from getting flushed (#276) 208* Support sending/receiving FDs over UNIX sockets (#291) 209* Mio's socket types are permanently associated with an EventLoop (#308) 210* Reduce unnecessary poll wakeups (#314) 211 212 213# 0.4.1 (July 21, 2015) 214 215* [BUGFIX] Fix notify channel concurrency bug (#216) 216 217# 0.4.0 (July 16, 2015) 218 219* [BUGFIX] EventLoop::register requests all events, not just readable. 220* [BUGFIX] Attempting to send a message to a shutdown event loop fails correctly. 221* [FEATURE] Expose TCP shutdown 222* [IMPROVEMENT] Coalesce readable & writable into `ready` event (#184) 223* [IMPROVEMENT] Rename TryRead & TryWrite function names to avoid conflict with std. 224* [IMPROVEMENT] Provide TCP and UDP types in Mio (path to windows #155) 225* [IMPROVEMENT] Use clock_ticks crate instead of time (path to windows #155) 226* [IMPROVEMENT] Move unix specific features into mio::unix module 227* [IMPROVEMENT] TcpListener sets SO_REUSEADDR by default 228