| # 1.17.0 (February 16, 2022) |
| |
| This release updates the minimum supported Rust version (MSRV) to 1.49, the |
| `mio` dependency to v0.8, and the (optional) `parking_lot` dependency to v0.12. |
| Additionally, it contains several bug fixes, as well as internal refactoring and |
| performance improvements. |
| |
| ### Fixed |
| |
| - time: prevent panicking in `sleep` with large durations ([#4495]) |
| - time: eliminate potential panics in `Instant` arithmetic on platforms where |
| `Instant::now` is not monotonic ([#4461]) |
| - io: fix `DuplexStream` not participating in cooperative yielding ([#4478]) |
| - rt: fix potential double panic when dropping a `JoinHandle` ([#4430]) |
| |
| ### Changed |
| |
| - update minimum supported Rust version to 1.49 ([#4457]) |
| - update `parking_lot` dependency to v0.12.0 ([#4459]) |
| - update `mio` dependency to v0.8 ([#4449]) |
| - rt: remove an unnecessary lock in the blocking pool ([#4436]) |
| - rt: remove an unnecessary enum in the basic scheduler ([#4462]) |
| - time: use bit manipulation instead of modulo to improve performance ([#4480]) |
| - net: use `std::future::Ready` instead of our own `Ready` future ([#4271]) |
| - replace deprecated `atomic::spin_loop_hint` with `hint::spin_loop` ([#4491]) |
| - fix miri failures in intrusive linked lists ([#4397]) |
| |
| ### Documented |
| |
| - io: add an example for `tokio::process::ChildStdin` ([#4479]) |
| |
| ### Unstable |
| |
| The following changes only apply when building with `--cfg tokio_unstable`: |
| |
| - task: fix missing location information in `tracing` spans generated by |
| `spawn_local` ([#4483]) |
| - task: add `JoinSet` for managing sets of tasks ([#4335]) |
| - metrics: fix compilation error on MIPS ([#4475]) |
| - metrics: fix compilation error on arm32v7 ([#4453]) |
| |
| [#4495]: https://github.com/tokio-rs/tokio/pull/4495 |
| [#4461]: https://github.com/tokio-rs/tokio/pull/4461 |
| [#4478]: https://github.com/tokio-rs/tokio/pull/4478 |
| [#4430]: https://github.com/tokio-rs/tokio/pull/4430 |
| [#4457]: https://github.com/tokio-rs/tokio/pull/4457 |
| [#4459]: https://github.com/tokio-rs/tokio/pull/4459 |
| [#4449]: https://github.com/tokio-rs/tokio/pull/4449 |
| [#4462]: https://github.com/tokio-rs/tokio/pull/4462 |
| [#4436]: https://github.com/tokio-rs/tokio/pull/4436 |
| [#4480]: https://github.com/tokio-rs/tokio/pull/4480 |
| [#4271]: https://github.com/tokio-rs/tokio/pull/4271 |
| [#4491]: https://github.com/tokio-rs/tokio/pull/4491 |
| [#4397]: https://github.com/tokio-rs/tokio/pull/4397 |
| [#4479]: https://github.com/tokio-rs/tokio/pull/4479 |
| [#4483]: https://github.com/tokio-rs/tokio/pull/4483 |
| [#4335]: https://github.com/tokio-rs/tokio/pull/4335 |
| [#4475]: https://github.com/tokio-rs/tokio/pull/4475 |
| [#4453]: https://github.com/tokio-rs/tokio/pull/4453 |
| |
| # 1.16.1 (January 28, 2022) |
| |
| This release fixes a bug in [#4428] with the change [#4437]. |
| |
| [#4428]: https://github.com/tokio-rs/tokio/pull/4428 |
| [#4437]: https://github.com/tokio-rs/tokio/pull/4437 |
| |
| # 1.16.0 (January 27, 2022) |
| |
| Fixes a soundness bug in `io::Take` ([#4428]). The unsoundness is exposed when |
| leaking memory in the given `AsyncRead` implementation and then overwriting the |
| supplied buffer: |
| |
| ```rust |
| impl AsyncRead for Buggy { |
| fn poll_read( |
| self: Pin<&mut Self>, |
| cx: &mut Context<'_>, |
| buf: &mut ReadBuf<'_> |
| ) -> Poll<Result<()>> { |
| let new_buf = vec![0; 5].leak(); |
| *buf = ReadBuf::new(new_buf); |
| buf.put_slice(b"hello"); |
| Poll::Ready(Ok(())) |
| } |
| } |
| ``` |
| |
| Also, this release includes improvements to the multi-threaded scheduler that |
| can increase throughput by up to 20% in some cases ([#4383]). |
| |
| ### Fixed |
| |
| - io: **soundness** don't expose uninitialized memory when using `io::Take` in edge case ([#4428]) |
| - fs: ensure `File::write` results in a `write` syscall when the runtime shuts down ([#4316]) |
| - process: drop pipe after child exits in `wait_with_output` ([#4315]) |
| - rt: improve error message when spawning a thread fails ([#4398]) |
| - rt: reduce false-positive thread wakups in the multi-threaded scheduler ([#4383]) |
| - sync: don't inherit `Send` from `parking_lot::*Guard` ([#4359]) |
| |
| ### Added |
| |
| - net: `TcpSocket::linger()` and `set_linger()` ([#4324]) |
| - net: impl `UnwindSafe` for socket types ([#4384]) |
| - rt: impl `UnwindSafe` for `JoinHandle` ([#4418]) |
| - sync: `watch::Receiver::has_changed()` ([#4342]) |
| - sync: `oneshot::Receiver::blocking_recv()` ([#4334]) |
| - sync: `RwLock` blocking operations ([#4425]) |
| |
| ### Unstable |
| |
| The following changes only apply when building with `--cfg tokio_unstable` |
| |
| - rt: **breaking change** overhaul runtime metrics API ([#4373]) |
| |
| [#4428]: https://github.com/tokio-rs/tokio/pull/4428 |
| [#4316]: https://github.com/tokio-rs/tokio/pull/4316 |
| [#4315]: https://github.com/tokio-rs/tokio/pull/4315 |
| [#4398]: https://github.com/tokio-rs/tokio/pull/4398 |
| [#4383]: https://github.com/tokio-rs/tokio/pull/4383 |
| [#4359]: https://github.com/tokio-rs/tokio/pull/4359 |
| [#4324]: https://github.com/tokio-rs/tokio/pull/4324 |
| [#4384]: https://github.com/tokio-rs/tokio/pull/4384 |
| [#4418]: https://github.com/tokio-rs/tokio/pull/4418 |
| [#4342]: https://github.com/tokio-rs/tokio/pull/4342 |
| [#4334]: https://github.com/tokio-rs/tokio/pull/4334 |
| [#4425]: https://github.com/tokio-rs/tokio/pull/4425 |
| [#4373]: https://github.com/tokio-rs/tokio/pull/4373 |
| |
| # 1.15.0 (December 15, 2021) |
| |
| ### Fixed |
| |
| - io: add cooperative yielding support to `io::empty()` ([#4300]) |
| - time: make timeout robust against budget-depleting tasks ([#4314]) |
| |
| ### Changed |
| |
| - update minimum supported Rust version to 1.46. |
| |
| ### Added |
| |
| - time: add `Interval::reset()` ([#4248]) |
| - io: add explicit lifetimes to `AsyncFdReadyGuard` ([#4267]) |
| - process: add `Command::as_std()` ([#4295]) |
| |
| ### Added (unstable) |
| |
| - tracing: instrument `tokio::sync` types ([#4302]) |
| |
| [#4302]: https://github.com/tokio-rs/tokio/pull/4302 |
| [#4300]: https://github.com/tokio-rs/tokio/pull/4300 |
| [#4295]: https://github.com/tokio-rs/tokio/pull/4295 |
| [#4267]: https://github.com/tokio-rs/tokio/pull/4267 |
| [#4248]: https://github.com/tokio-rs/tokio/pull/4248 |
| [#4314]: https://github.com/tokio-rs/tokio/pull/4314 |
| |
| # 1.14.0 (November 15, 2021) |
| |
| ### Fixed |
| |
| - macros: fix compiler errors when using `mut` patterns in `select!` ([#4211]) |
| - sync: fix a data race between `oneshot::Sender::send` and awaiting a |
| `oneshot::Receiver` when the oneshot has been closed ([#4226]) |
| - sync: make `AtomicWaker` panic safe ([#3689]) |
| - runtime: fix basic scheduler dropping tasks outside a runtime context |
| ([#4213]) |
| |
| ### Added |
| |
| - stats: add `RuntimeStats::busy_duration_total` ([#4179], [#4223]) |
| |
| ### Changed |
| |
| - io: updated `copy` buffer size to match `std::io::copy` ([#4209]) |
| |
| ### Documented |
| |
| - io: rename buffer to file in doc-test ([#4230]) |
| - sync: fix Notify example ([#4212]) |
| |
| [#4211]: https://github.com/tokio-rs/tokio/pull/4211 |
| [#4226]: https://github.com/tokio-rs/tokio/pull/4226 |
| [#3689]: https://github.com/tokio-rs/tokio/pull/3689 |
| [#4213]: https://github.com/tokio-rs/tokio/pull/4213 |
| [#4179]: https://github.com/tokio-rs/tokio/pull/4179 |
| [#4223]: https://github.com/tokio-rs/tokio/pull/4223 |
| [#4209]: https://github.com/tokio-rs/tokio/pull/4209 |
| [#4230]: https://github.com/tokio-rs/tokio/pull/4230 |
| [#4212]: https://github.com/tokio-rs/tokio/pull/4212 |
| |
| # 1.13.1 (November 15, 2021) |
| |
| ### Fixed |
| |
| - sync: fix a data race between `oneshot::Sender::send` and awaiting a |
| `oneshot::Receiver` when the oneshot has been closed ([#4226]) |
| |
| [#4226]: https://github.com/tokio-rs/tokio/pull/4226 |
| |
| # 1.13.0 (October 29, 2021) |
| |
| ### Fixed |
| |
| - sync: fix `Notify` to clone the waker before locking its waiter list ([#4129]) |
| - tokio: add riscv32 to non atomic64 architectures ([#4185]) |
| |
| ### Added |
| |
| - net: add `poll_{recv,send}_ready` methods to `udp` and `uds_datagram` ([#4131]) |
| - net: add `try_*`, `readable`, `writable`, `ready`, and `peer_addr` methods to split halves ([#4120]) |
| - sync: add `blocking_lock` to `Mutex` ([#4130]) |
| - sync: add `watch::Sender::send_replace` ([#3962], [#4195]) |
| - sync: expand `Debug` for `Mutex<T>` impl to unsized `T` ([#4134]) |
| - tracing: instrument time::Sleep ([#4072]) |
| - tracing: use structured location fields for spawned tasks ([#4128]) |
| |
| ### Changed |
| |
| - io: add assert in `copy_bidirectional` that `poll_write` is sensible ([#4125]) |
| - macros: use qualified syntax when polling in `select!` ([#4192]) |
| - runtime: handle `block_on` wakeups better ([#4157]) |
| - task: allocate callback on heap immediately in debug mode ([#4203]) |
| - tokio: assert platform-minimum requirements at build time ([#3797]) |
| |
| ### Documented |
| |
| - docs: conversion of doc comments to indicative mood ([#4174]) |
| - docs: add returning on the first error example for `try_join!` ([#4133]) |
| - docs: fixing broken links in `tokio/src/lib.rs` ([#4132]) |
| - signal: add example with background listener ([#4171]) |
| - sync: add more oneshot examples ([#4153]) |
| - time: document `Interval::tick` cancel safety ([#4152]) |
| |
| [#3797]: https://github.com/tokio-rs/tokio/pull/3797 |
| [#3962]: https://github.com/tokio-rs/tokio/pull/3962 |
| [#4072]: https://github.com/tokio-rs/tokio/pull/4072 |
| [#4120]: https://github.com/tokio-rs/tokio/pull/4120 |
| [#4125]: https://github.com/tokio-rs/tokio/pull/4125 |
| [#4128]: https://github.com/tokio-rs/tokio/pull/4128 |
| [#4129]: https://github.com/tokio-rs/tokio/pull/4129 |
| [#4130]: https://github.com/tokio-rs/tokio/pull/4130 |
| [#4131]: https://github.com/tokio-rs/tokio/pull/4131 |
| [#4132]: https://github.com/tokio-rs/tokio/pull/4132 |
| [#4133]: https://github.com/tokio-rs/tokio/pull/4133 |
| [#4134]: https://github.com/tokio-rs/tokio/pull/4134 |
| [#4152]: https://github.com/tokio-rs/tokio/pull/4152 |
| [#4153]: https://github.com/tokio-rs/tokio/pull/4153 |
| [#4157]: https://github.com/tokio-rs/tokio/pull/4157 |
| [#4171]: https://github.com/tokio-rs/tokio/pull/4171 |
| [#4174]: https://github.com/tokio-rs/tokio/pull/4174 |
| [#4185]: https://github.com/tokio-rs/tokio/pull/4185 |
| [#4192]: https://github.com/tokio-rs/tokio/pull/4192 |
| [#4195]: https://github.com/tokio-rs/tokio/pull/4195 |
| [#4203]: https://github.com/tokio-rs/tokio/pull/4203 |
| |
| # 1.12.0 (September 21, 2021) |
| |
| ### Fixed |
| |
| - mpsc: ensure `try_reserve` error is consistent with `try_send` ([#4119]) |
| - mpsc: use `spin_loop_hint` instead of `yield_now` ([#4115]) |
| - sync: make `SendError` field public ([#4097]) |
| |
| ### Added |
| |
| - io: add POSIX AIO on FreeBSD ([#4054]) |
| - io: add convenience method `AsyncSeekExt::rewind` ([#4107]) |
| - runtime: add tracing span for `block_on` futures ([#4094]) |
| - runtime: callback when a worker parks and unparks ([#4070]) |
| - sync: implement `try_recv` for mpsc channels ([#4113]) |
| |
| ### Documented |
| |
| - docs: clarify CPU-bound tasks on Tokio ([#4105]) |
| - mpsc: document spurious failures on `poll_recv` ([#4117]) |
| - mpsc: document that `PollSender` impls `Sink` ([#4110]) |
| - task: document non-guarantees of `yield_now` ([#4091]) |
| - time: document paused time details better ([#4061], [#4103]) |
| |
| [#4027]: https://github.com/tokio-rs/tokio/pull/4027 |
| [#4054]: https://github.com/tokio-rs/tokio/pull/4054 |
| [#4061]: https://github.com/tokio-rs/tokio/pull/4061 |
| [#4070]: https://github.com/tokio-rs/tokio/pull/4070 |
| [#4091]: https://github.com/tokio-rs/tokio/pull/4091 |
| [#4094]: https://github.com/tokio-rs/tokio/pull/4094 |
| [#4097]: https://github.com/tokio-rs/tokio/pull/4097 |
| [#4103]: https://github.com/tokio-rs/tokio/pull/4103 |
| [#4105]: https://github.com/tokio-rs/tokio/pull/4105 |
| [#4107]: https://github.com/tokio-rs/tokio/pull/4107 |
| [#4110]: https://github.com/tokio-rs/tokio/pull/4110 |
| [#4113]: https://github.com/tokio-rs/tokio/pull/4113 |
| [#4115]: https://github.com/tokio-rs/tokio/pull/4115 |
| [#4117]: https://github.com/tokio-rs/tokio/pull/4117 |
| [#4119]: https://github.com/tokio-rs/tokio/pull/4119 |
| |
| # 1.11.0 (August 31, 2021) |
| |
| ### Fixed |
| |
| - time: don't panic when Instant is not monotonic ([#4044]) |
| - io: fix panic in `fill_buf` by not calling `poll_fill_buf` twice ([#4084]) |
| |
| ### Added |
| |
| - watch: add `watch::Sender::subscribe` ([#3800]) |
| - process: add `from_std` to `ChildStd*` ([#4045]) |
| - stats: initial work on runtime stats ([#4043]) |
| |
| ### Changed |
| |
| - tracing: change span naming to new console convention ([#4042]) |
| - io: speed-up waking by using uninitialized array ([#4055], [#4071], [#4075]) |
| |
| ### Documented |
| |
| - time: make Sleep examples easier to find ([#4040]) |
| |
| [#3800]: https://github.com/tokio-rs/tokio/pull/3800 |
| [#4040]: https://github.com/tokio-rs/tokio/pull/4040 |
| [#4042]: https://github.com/tokio-rs/tokio/pull/4042 |
| [#4043]: https://github.com/tokio-rs/tokio/pull/4043 |
| [#4044]: https://github.com/tokio-rs/tokio/pull/4044 |
| [#4045]: https://github.com/tokio-rs/tokio/pull/4045 |
| [#4055]: https://github.com/tokio-rs/tokio/pull/4055 |
| [#4071]: https://github.com/tokio-rs/tokio/pull/4071 |
| [#4075]: https://github.com/tokio-rs/tokio/pull/4075 |
| [#4084]: https://github.com/tokio-rs/tokio/pull/4084 |
| |
| # 1.10.1 (August 24, 2021) |
| |
| ### Fixed |
| |
| - runtime: fix leak in UnownedTask ([#4063]) |
| |
| [#4063]: https://github.com/tokio-rs/tokio/pull/4063 |
| |
| # 1.10.0 (August 12, 2021) |
| |
| ### Added |
| |
| - io: add `(read|write)_f(32|64)[_le]` methods ([#4022]) |
| - io: add `fill_buf` and `consume` to `AsyncBufReadExt` ([#3991]) |
| - process: add `Child::raw_handle()` on windows ([#3998]) |
| |
| ### Fixed |
| |
| - doc: fix non-doc builds with `--cfg docsrs` ([#4020]) |
| - io: flush eagerly in `io::copy` ([#4001]) |
| - runtime: a debug assert was sometimes triggered during shutdown ([#4005]) |
| - sync: use `spin_loop_hint` instead of `yield_now` in mpsc ([#4037]) |
| - tokio: the test-util feature depends on rt, sync, and time ([#4036]) |
| |
| ### Changes |
| |
| - runtime: reorganize parts of the runtime ([#3979], [#4005]) |
| - signal: make windows docs for signal module show up on unix builds ([#3770]) |
| - task: quickly send task to heap on debug mode ([#4009]) |
| |
| ### Documented |
| |
| - io: document cancellation safety of `AsyncBufReadExt` ([#3997]) |
| - sync: document when `watch::send` fails ([#4021]) |
| |
| [#3770]: https://github.com/tokio-rs/tokio/pull/3770 |
| [#3979]: https://github.com/tokio-rs/tokio/pull/3979 |
| [#3991]: https://github.com/tokio-rs/tokio/pull/3991 |
| [#3997]: https://github.com/tokio-rs/tokio/pull/3997 |
| [#3998]: https://github.com/tokio-rs/tokio/pull/3998 |
| [#4001]: https://github.com/tokio-rs/tokio/pull/4001 |
| [#4005]: https://github.com/tokio-rs/tokio/pull/4005 |
| [#4009]: https://github.com/tokio-rs/tokio/pull/4009 |
| [#4020]: https://github.com/tokio-rs/tokio/pull/4020 |
| [#4021]: https://github.com/tokio-rs/tokio/pull/4021 |
| [#4022]: https://github.com/tokio-rs/tokio/pull/4022 |
| [#4036]: https://github.com/tokio-rs/tokio/pull/4036 |
| [#4037]: https://github.com/tokio-rs/tokio/pull/4037 |
| |
| # 1.9.0 (July 22, 2021) |
| |
| ### Added |
| |
| - net: allow customized I/O operations for `TcpStream` ([#3888]) |
| - sync: add getter for the mutex from a guard ([#3928]) |
| - task: expose nameable future for `TaskLocal::scope` ([#3273]) |
| |
| ### Fixed |
| |
| - Fix leak if output of future panics on drop ([#3967]) |
| - Fix leak in `LocalSet` ([#3978]) |
| |
| ### Changes |
| |
| - runtime: reorganize parts of the runtime ([#3909], [#3939], [#3950], [#3955], [#3980]) |
| - sync: clean up `OnceCell` ([#3945]) |
| - task: remove mutex in `JoinError` ([#3959]) |
| |
| [#3273]: https://github.com/tokio-rs/tokio/pull/3273 |
| [#3888]: https://github.com/tokio-rs/tokio/pull/3888 |
| [#3909]: https://github.com/tokio-rs/tokio/pull/3909 |
| [#3928]: https://github.com/tokio-rs/tokio/pull/3928 |
| [#3934]: https://github.com/tokio-rs/tokio/pull/3934 |
| [#3939]: https://github.com/tokio-rs/tokio/pull/3939 |
| [#3945]: https://github.com/tokio-rs/tokio/pull/3945 |
| [#3950]: https://github.com/tokio-rs/tokio/pull/3950 |
| [#3955]: https://github.com/tokio-rs/tokio/pull/3955 |
| [#3959]: https://github.com/tokio-rs/tokio/pull/3959 |
| [#3967]: https://github.com/tokio-rs/tokio/pull/3967 |
| [#3978]: https://github.com/tokio-rs/tokio/pull/3978 |
| [#3980]: https://github.com/tokio-rs/tokio/pull/3980 |
| |
| # 1.8.3 (July 26, 2021) |
| |
| This release backports two fixes from 1.9.0 |
| |
| ### Fixed |
| |
| - Fix leak if output of future panics on drop ([#3967]) |
| - Fix leak in `LocalSet` ([#3978]) |
| |
| [#3967]: https://github.com/tokio-rs/tokio/pull/3967 |
| [#3978]: https://github.com/tokio-rs/tokio/pull/3978 |
| |
| # 1.8.2 (July 19, 2021) |
| |
| Fixes a missed edge case from 1.8.1. |
| |
| ### Fixed |
| |
| - runtime: drop canceled future on next poll (#3965) |
| |
| # 1.8.1 (July 6, 2021) |
| |
| Forward ports 1.5.1 fixes. |
| |
| ### Fixed |
| |
| - runtime: remotely abort tasks on `JoinHandle::abort` ([#3934]) |
| |
| [#3934]: https://github.com/tokio-rs/tokio/pull/3934 |
| |
| # 1.8.0 (July 2, 2021) |
| |
| ### Added |
| |
| - io: add `get_{ref,mut}` methods to `AsyncFdReadyGuard` and `AsyncFdReadyMutGuard` ([#3807]) |
| - io: efficient implementation of vectored writes for `BufWriter` ([#3163]) |
| - net: add ready/try methods to `NamedPipe{Client,Server}` ([#3866], [#3899]) |
| - sync: add `watch::Receiver::borrow_and_update` ([#3813]) |
| - sync: implement `From<T>` for `OnceCell<T>` ([#3877]) |
| - time: allow users to specify Interval behaviour when delayed ([#3721]) |
| |
| ### Added (unstable) |
| |
| - rt: add `tokio::task::Builder` ([#3881]) |
| |
| ### Fixed |
| |
| - net: handle HUP event with `UnixStream` ([#3898]) |
| |
| ### Documented |
| |
| - doc: document cancellation safety ([#3900]) |
| - time: add wait alias to sleep ([#3897]) |
| - time: document auto-advancing behaviour of runtime ([#3763]) |
| |
| [#3163]: https://github.com/tokio-rs/tokio/pull/3163 |
| [#3721]: https://github.com/tokio-rs/tokio/pull/3721 |
| [#3763]: https://github.com/tokio-rs/tokio/pull/3763 |
| [#3807]: https://github.com/tokio-rs/tokio/pull/3807 |
| [#3813]: https://github.com/tokio-rs/tokio/pull/3813 |
| [#3866]: https://github.com/tokio-rs/tokio/pull/3866 |
| [#3877]: https://github.com/tokio-rs/tokio/pull/3877 |
| [#3881]: https://github.com/tokio-rs/tokio/pull/3881 |
| [#3897]: https://github.com/tokio-rs/tokio/pull/3897 |
| [#3898]: https://github.com/tokio-rs/tokio/pull/3898 |
| [#3899]: https://github.com/tokio-rs/tokio/pull/3899 |
| [#3900]: https://github.com/tokio-rs/tokio/pull/3900 |
| |
| # 1.7.2 (July 6, 2021) |
| |
| Forward ports 1.5.1 fixes. |
| |
| ### Fixed |
| |
| - runtime: remotely abort tasks on `JoinHandle::abort` ([#3934]) |
| |
| [#3934]: https://github.com/tokio-rs/tokio/pull/3934 |
| |
| # 1.7.1 (June 18, 2021) |
| |
| ### Fixed |
| |
| - runtime: fix early task shutdown during runtime shutdown ([#3870]) |
| |
| [#3870]: https://github.com/tokio-rs/tokio/pull/3870 |
| |
| # 1.7.0 (June 15, 2021) |
| |
| ### Added |
| |
| - net: add named pipes on windows ([#3760]) |
| - net: add `TcpSocket` from `std::net::TcpStream` conversion ([#3838]) |
| - sync: add `receiver_count` to `watch::Sender` ([#3729]) |
| - sync: export `sync::notify::Notified` future publicly ([#3840]) |
| - tracing: instrument task wakers ([#3836]) |
| |
| ### Fixed |
| |
| - macros: suppress `clippy::default_numeric_fallback` lint in generated code ([#3831]) |
| - runtime: immediately drop new tasks when runtime is shut down ([#3752]) |
| - sync: deprecate unused `mpsc::RecvError` type ([#3833]) |
| |
| ### Documented |
| |
| - io: clarify EOF condition for `AsyncReadExt::read_buf` ([#3850]) |
| - io: clarify limits on return values of `AsyncWrite::poll_write` ([#3820]) |
| - sync: add examples to Semaphore ([#3808]) |
| |
| [#3729]: https://github.com/tokio-rs/tokio/pull/3729 |
| [#3752]: https://github.com/tokio-rs/tokio/pull/3752 |
| [#3760]: https://github.com/tokio-rs/tokio/pull/3760 |
| [#3808]: https://github.com/tokio-rs/tokio/pull/3808 |
| [#3820]: https://github.com/tokio-rs/tokio/pull/3820 |
| [#3831]: https://github.com/tokio-rs/tokio/pull/3831 |
| [#3833]: https://github.com/tokio-rs/tokio/pull/3833 |
| [#3836]: https://github.com/tokio-rs/tokio/pull/3836 |
| [#3838]: https://github.com/tokio-rs/tokio/pull/3838 |
| [#3840]: https://github.com/tokio-rs/tokio/pull/3840 |
| [#3850]: https://github.com/tokio-rs/tokio/pull/3850 |
| |
| # 1.6.3 (July 6, 2021) |
| |
| Forward ports 1.5.1 fixes. |
| |
| ### Fixed |
| |
| - runtime: remotely abort tasks on `JoinHandle::abort` ([#3934]) |
| |
| [#3934]: https://github.com/tokio-rs/tokio/pull/3934 |
| |
| # 1.6.2 (June 14, 2021) |
| |
| ### Fixes |
| |
| - test: sub-ms `time:advance` regression introduced in 1.6 ([#3852]) |
| |
| [#3852]: https://github.com/tokio-rs/tokio/pull/3852 |
| |
| # 1.6.1 (May 28, 2021) |
| |
| This release reverts [#3518] because it doesn't work on some kernels due to |
| a kernel bug. ([#3803]) |
| |
| [#3518]: https://github.com/tokio-rs/tokio/issues/3518 |
| [#3803]: https://github.com/tokio-rs/tokio/issues/3803 |
| |
| # 1.6.0 (May 14, 2021) |
| |
| ### Added |
| |
| - fs: try doing a non-blocking read before punting to the threadpool ([#3518]) |
| - io: add `write_all_buf` to `AsyncWriteExt` ([#3737]) |
| - io: implement `AsyncSeek` for `BufReader`, `BufWriter`, and `BufStream` ([#3491]) |
| - net: support non-blocking vectored I/O ([#3761]) |
| - sync: add `mpsc::Sender::{reserve_owned, try_reserve_owned}` ([#3704]) |
| - sync: add a `MutexGuard::map` method that returns a `MappedMutexGuard` ([#2472]) |
| - time: add getter for Interval's period ([#3705]) |
| |
| ### Fixed |
| |
| - io: wake pending writers on `DuplexStream` close ([#3756]) |
| - process: avoid redundant effort to reap orphan processes ([#3743]) |
| - signal: use `std::os::raw::c_int` instead of `libc::c_int` on public API ([#3774]) |
| - sync: preserve permit state in `notify_waiters` ([#3660]) |
| - task: update `JoinHandle` panic message ([#3727]) |
| - time: prevent `time::advance` from going too far ([#3712]) |
| |
| ### Documented |
| |
| - net: hide `net::unix::datagram` module from docs ([#3775]) |
| - process: updated example ([#3748]) |
| - sync: `Barrier` doc should use task, not thread ([#3780]) |
| - task: update documentation on `block_in_place` ([#3753]) |
| |
| [#2472]: https://github.com/tokio-rs/tokio/pull/2472 |
| [#3491]: https://github.com/tokio-rs/tokio/pull/3491 |
| [#3518]: https://github.com/tokio-rs/tokio/pull/3518 |
| [#3660]: https://github.com/tokio-rs/tokio/pull/3660 |
| [#3704]: https://github.com/tokio-rs/tokio/pull/3704 |
| [#3705]: https://github.com/tokio-rs/tokio/pull/3705 |
| [#3712]: https://github.com/tokio-rs/tokio/pull/3712 |
| [#3727]: https://github.com/tokio-rs/tokio/pull/3727 |
| [#3737]: https://github.com/tokio-rs/tokio/pull/3737 |
| [#3743]: https://github.com/tokio-rs/tokio/pull/3743 |
| [#3748]: https://github.com/tokio-rs/tokio/pull/3748 |
| [#3753]: https://github.com/tokio-rs/tokio/pull/3753 |
| [#3756]: https://github.com/tokio-rs/tokio/pull/3756 |
| [#3761]: https://github.com/tokio-rs/tokio/pull/3761 |
| [#3774]: https://github.com/tokio-rs/tokio/pull/3774 |
| [#3775]: https://github.com/tokio-rs/tokio/pull/3775 |
| [#3780]: https://github.com/tokio-rs/tokio/pull/3780 |
| |
| # 1.5.1 (July 6, 2021) |
| |
| ### Fixed |
| |
| - runtime: remotely abort tasks on `JoinHandle::abort` ([#3934]) |
| |
| [#3934]: https://github.com/tokio-rs/tokio/pull/3934 |
| |
| # 1.5.0 (April 12, 2021) |
| |
| ### Added |
| |
| - io: add `AsyncSeekExt::stream_position` ([#3650]) |
| - io: add `AsyncWriteExt::write_vectored` ([#3678]) |
| - io: add a `copy_bidirectional` utility ([#3572]) |
| - net: implement `IntoRawFd` for `TcpSocket` ([#3684]) |
| - sync: add `OnceCell` ([#3591]) |
| - sync: add `OwnedRwLockReadGuard` and `OwnedRwLockWriteGuard` ([#3340]) |
| - sync: add `Semaphore::is_closed` ([#3673]) |
| - sync: add `mpsc::Sender::capacity` ([#3690]) |
| - sync: allow configuring `RwLock` max reads ([#3644]) |
| - task: add `sync_scope` for `LocalKey` ([#3612]) |
| |
| ### Fixed |
| |
| - chore: try to avoid `noalias` attributes on intrusive linked list ([#3654]) |
| - rt: fix panic in `JoinHandle::abort()` when called from other threads ([#3672]) |
| - sync: don't panic in `oneshot::try_recv` ([#3674]) |
| - sync: fix notifications getting dropped on receiver drop ([#3652]) |
| - sync: fix `Semaphore` permit overflow calculation ([#3644]) |
| |
| ### Documented |
| |
| - io: clarify requirements of `AsyncFd` ([#3635]) |
| - runtime: fix unclear docs for `{Handle,Runtime}::block_on` ([#3628]) |
| - sync: document that `Semaphore` is fair ([#3693]) |
| - sync: improve doc on blocking mutex ([#3645]) |
| |
| [#3340]: https://github.com/tokio-rs/tokio/pull/3340 |
| [#3572]: https://github.com/tokio-rs/tokio/pull/3572 |
| [#3591]: https://github.com/tokio-rs/tokio/pull/3591 |
| [#3612]: https://github.com/tokio-rs/tokio/pull/3612 |
| [#3628]: https://github.com/tokio-rs/tokio/pull/3628 |
| [#3635]: https://github.com/tokio-rs/tokio/pull/3635 |
| [#3644]: https://github.com/tokio-rs/tokio/pull/3644 |
| [#3645]: https://github.com/tokio-rs/tokio/pull/3645 |
| [#3650]: https://github.com/tokio-rs/tokio/pull/3650 |
| [#3652]: https://github.com/tokio-rs/tokio/pull/3652 |
| [#3654]: https://github.com/tokio-rs/tokio/pull/3654 |
| [#3672]: https://github.com/tokio-rs/tokio/pull/3672 |
| [#3673]: https://github.com/tokio-rs/tokio/pull/3673 |
| [#3674]: https://github.com/tokio-rs/tokio/pull/3674 |
| [#3678]: https://github.com/tokio-rs/tokio/pull/3678 |
| [#3684]: https://github.com/tokio-rs/tokio/pull/3684 |
| [#3690]: https://github.com/tokio-rs/tokio/pull/3690 |
| [#3693]: https://github.com/tokio-rs/tokio/pull/3693 |
| |
| # 1.4.0 (March 20, 2021) |
| |
| ### Added |
| |
| - macros: introduce biased argument for `select!` ([#3603]) |
| - runtime: add `Handle::block_on` ([#3569]) |
| |
| ### Fixed |
| |
| - runtime: avoid unnecessary polling of `block_on` future ([#3582]) |
| - runtime: fix memory leak/growth when creating many runtimes ([#3564]) |
| - runtime: mark `EnterGuard` with `must_use` ([#3609]) |
| |
| ### Documented |
| |
| - chore: mention fix for building docs in contributing guide ([#3618]) |
| - doc: add link to `PollSender` ([#3613]) |
| - doc: alias sleep to delay ([#3604]) |
| - sync: improve `Mutex` FIFO explanation ([#3615]) |
| - timer: fix double newline in module docs ([#3617]) |
| |
| [#3564]: https://github.com/tokio-rs/tokio/pull/3564 |
| [#3613]: https://github.com/tokio-rs/tokio/pull/3613 |
| [#3618]: https://github.com/tokio-rs/tokio/pull/3618 |
| [#3617]: https://github.com/tokio-rs/tokio/pull/3617 |
| [#3582]: https://github.com/tokio-rs/tokio/pull/3582 |
| [#3615]: https://github.com/tokio-rs/tokio/pull/3615 |
| [#3603]: https://github.com/tokio-rs/tokio/pull/3603 |
| [#3609]: https://github.com/tokio-rs/tokio/pull/3609 |
| [#3604]: https://github.com/tokio-rs/tokio/pull/3604 |
| [#3569]: https://github.com/tokio-rs/tokio/pull/3569 |
| |
| # 1.3.0 (March 9, 2021) |
| |
| ### Added |
| |
| - coop: expose an `unconstrained()` opt-out ([#3547]) |
| - net: add `into_std` for net types without it ([#3509]) |
| - sync: add `same_channel` method to `mpsc::Sender` ([#3532]) |
| - sync: add `{try_,}acquire_many_owned` to `Semaphore` ([#3535]) |
| - sync: add back `RwLockWriteGuard::map` and `RwLockWriteGuard::try_map` ([#3348]) |
| |
| ### Fixed |
| |
| - sync: allow `oneshot::Receiver::close` after successful `try_recv` ([#3552]) |
| - time: do not panic on `timeout(Duration::MAX)` ([#3551]) |
| |
| ### Documented |
| |
| - doc: doc aliases for pre-1.0 function names ([#3523]) |
| - io: fix typos ([#3541]) |
| - io: note the EOF behaviour of `read_until` ([#3536]) |
| - io: update `AsyncRead::poll_read` doc ([#3557]) |
| - net: update `UdpSocket` splitting doc ([#3517]) |
| - runtime: add link to `LocalSet` on `new_current_thread` ([#3508]) |
| - runtime: update documentation of thread limits ([#3527]) |
| - sync: do not recommend `join_all` for `Barrier` ([#3514]) |
| - sync: documentation for `oneshot` ([#3592]) |
| - sync: rename `notify` to `notify_one` ([#3526]) |
| - time: fix typo in `Sleep` doc ([#3515]) |
| - time: sync `interval.rs` and `time/mod.rs` docs ([#3533]) |
| |
| [#3348]: https://github.com/tokio-rs/tokio/pull/3348 |
| [#3508]: https://github.com/tokio-rs/tokio/pull/3508 |
| [#3509]: https://github.com/tokio-rs/tokio/pull/3509 |
| [#3514]: https://github.com/tokio-rs/tokio/pull/3514 |
| [#3515]: https://github.com/tokio-rs/tokio/pull/3515 |
| [#3517]: https://github.com/tokio-rs/tokio/pull/3517 |
| [#3523]: https://github.com/tokio-rs/tokio/pull/3523 |
| [#3526]: https://github.com/tokio-rs/tokio/pull/3526 |
| [#3527]: https://github.com/tokio-rs/tokio/pull/3527 |
| [#3532]: https://github.com/tokio-rs/tokio/pull/3532 |
| [#3533]: https://github.com/tokio-rs/tokio/pull/3533 |
| [#3535]: https://github.com/tokio-rs/tokio/pull/3535 |
| [#3536]: https://github.com/tokio-rs/tokio/pull/3536 |
| [#3541]: https://github.com/tokio-rs/tokio/pull/3541 |
| [#3547]: https://github.com/tokio-rs/tokio/pull/3547 |
| [#3551]: https://github.com/tokio-rs/tokio/pull/3551 |
| [#3552]: https://github.com/tokio-rs/tokio/pull/3552 |
| [#3557]: https://github.com/tokio-rs/tokio/pull/3557 |
| [#3592]: https://github.com/tokio-rs/tokio/pull/3592 |
| |
| # 1.2.0 (February 5, 2021) |
| |
| ### Added |
| |
| - signal: make `Signal::poll_recv` method public ([#3383]) |
| |
| ### Fixed |
| |
| - time: make `test-util` paused time fully deterministic ([#3492]) |
| |
| ### Documented |
| |
| - sync: link to new broadcast and watch wrappers ([#3504]) |
| |
| [#3383]: https://github.com/tokio-rs/tokio/pull/3383 |
| [#3492]: https://github.com/tokio-rs/tokio/pull/3492 |
| [#3504]: https://github.com/tokio-rs/tokio/pull/3504 |
| |
| # 1.1.1 (January 29, 2021) |
| |
| Forward ports 1.0.3 fix. |
| |
| ### Fixed |
| - io: memory leak during shutdown ([#3477]). |
| |
| # 1.1.0 (January 22, 2021) |
| |
| ### Added |
| |
| - net: add `try_read_buf` and `try_recv_buf` ([#3351]) |
| - mpsc: Add `Sender::try_reserve` function ([#3418]) |
| - sync: add `RwLock` `try_read` and `try_write` methods ([#3400]) |
| - io: add `ReadBuf::inner_mut` ([#3443]) |
| |
| ### Changed |
| |
| - macros: improve `select!` error message ([#3352]) |
| - io: keep track of initialized bytes in `read_to_end` ([#3426]) |
| - runtime: consolidate errors for context missing ([#3441]) |
| |
| ### Fixed |
| |
| - task: wake `LocalSet` on `spawn_local` ([#3369]) |
| - sync: fix panic in broadcast::Receiver drop ([#3434]) |
| |
| ### Documented |
| - stream: link to new `Stream` wrappers in `tokio-stream` ([#3343]) |
| - docs: mention that `test-util` feature is not enabled with full ([#3397]) |
| - process: add documentation to process::Child fields ([#3437]) |
| - io: clarify `AsyncFd` docs about changes of the inner fd ([#3430]) |
| - net: update datagram docs on splitting ([#3448]) |
| - time: document that `Sleep` is not `Unpin` ([#3457]) |
| - sync: add link to `PollSemaphore` ([#3456]) |
| - task: add `LocalSet` example ([#3438]) |
| - sync: improve bounded `mpsc` documentation ([#3458]) |
| |
| [#3343]: https://github.com/tokio-rs/tokio/pull/3343 |
| [#3351]: https://github.com/tokio-rs/tokio/pull/3351 |
| [#3352]: https://github.com/tokio-rs/tokio/pull/3352 |
| [#3369]: https://github.com/tokio-rs/tokio/pull/3369 |
| [#3397]: https://github.com/tokio-rs/tokio/pull/3397 |
| [#3400]: https://github.com/tokio-rs/tokio/pull/3400 |
| [#3418]: https://github.com/tokio-rs/tokio/pull/3418 |
| [#3426]: https://github.com/tokio-rs/tokio/pull/3426 |
| [#3430]: https://github.com/tokio-rs/tokio/pull/3430 |
| [#3434]: https://github.com/tokio-rs/tokio/pull/3434 |
| [#3437]: https://github.com/tokio-rs/tokio/pull/3437 |
| [#3438]: https://github.com/tokio-rs/tokio/pull/3438 |
| [#3441]: https://github.com/tokio-rs/tokio/pull/3441 |
| [#3443]: https://github.com/tokio-rs/tokio/pull/3443 |
| [#3448]: https://github.com/tokio-rs/tokio/pull/3448 |
| [#3456]: https://github.com/tokio-rs/tokio/pull/3456 |
| [#3457]: https://github.com/tokio-rs/tokio/pull/3457 |
| [#3458]: https://github.com/tokio-rs/tokio/pull/3458 |
| |
| # 1.0.3 (January 28, 2021) |
| |
| ### Fixed |
| - io: memory leak during shutdown ([#3477]). |
| |
| [#3477]: https://github.com/tokio-rs/tokio/pull/3477 |
| |
| # 1.0.2 (January 14, 2021) |
| |
| ### Fixed |
| - io: soundness in `read_to_end` ([#3428]). |
| |
| [#3428]: https://github.com/tokio-rs/tokio/pull/3428 |
| |
| # 1.0.1 (December 25, 2020) |
| |
| This release fixes a soundness hole caused by the combination of `RwLockWriteGuard::map` |
| and `RwLockWriteGuard::downgrade` by removing the `map` function. This is a breaking |
| change, but breaking changes are allowed under our semver policy when they are required |
| to fix a soundness hole. (See [this RFC][semver] for more.) |
| |
| Note that we have chosen not to do a deprecation cycle or similar because Tokio 1.0.0 was |
| released two days ago, and therefore the impact should be minimal. |
| |
| Due to the soundness hole, we have also yanked Tokio version 1.0.0. |
| |
| ### Removed |
| |
| - sync: remove `RwLockWriteGuard::map` and `RwLockWriteGuard::try_map` ([#3345]) |
| |
| ### Fixed |
| |
| - docs: remove stream feature from docs ([#3335]) |
| |
| [semver]: https://github.com/rust-lang/rfcs/blob/master/text/1122-language-semver.md#soundness-changes |
| [#3335]: https://github.com/tokio-rs/tokio/pull/3335 |
| [#3345]: https://github.com/tokio-rs/tokio/pull/3345 |
| |
| # 1.0.0 (December 23, 2020) |
| |
| Commit to the API and long-term support. |
| |
| ### Fixed |
| |
| - sync: spurious wakeup in `watch` ([#3234]). |
| |
| ### Changed |
| |
| - io: rename `AsyncFd::with_io()` to `try_io()` ([#3306]) |
| - fs: avoid OS specific `*Ext` traits in favor of conditionally defining the fn ([#3264]). |
| - fs: `Sleep` is `!Unpin` ([#3278]). |
| - net: pass `SocketAddr` by value ([#3125]). |
| - net: `TcpStream::poll_peek` takes `ReadBuf` ([#3259]). |
| - rt: rename `runtime::Builder::max_threads()` to `max_blocking_threads()` ([#3287]). |
| - time: require `current_thread` runtime when calling `time::pause()` ([#3289]). |
| |
| ### Removed |
| |
| - remove `tokio::prelude` ([#3299]). |
| - io: remove `AsyncFd::with_poll()` ([#3306]). |
| - net: remove `{Tcp,Unix}Stream::shutdown()` in favor of `AsyncWrite::shutdown()` ([#3298]). |
| - stream: move all stream utilities to `tokio-stream` until `Stream` is added to |
| `std` ([#3277]). |
| - sync: mpsc `try_recv()` due to unexpected behavior ([#3263]). |
| - tracing: make unstable as `tracing-core` is not 1.0 yet ([#3266]). |
| |
| ### Added |
| |
| - fs: `poll_*` fns to `DirEntry` ([#3308]). |
| - io: `poll_*` fns to `io::Lines`, `io::Split` ([#3308]). |
| - io: `_mut` method variants to `AsyncFd` ([#3304]). |
| - net: `poll_*` fns to `UnixDatagram` ([#3223]). |
| - net: `UnixStream` readiness and non-blocking ops ([#3246]). |
| - sync: `UnboundedReceiver::blocking_recv()` ([#3262]). |
| - sync: `watch::Sender::borrow()` ([#3269]). |
| - sync: `Semaphore::close()` ([#3065]). |
| - sync: `poll_recv` fns to `mpsc::Receiver`, `mpsc::UnboundedReceiver` ([#3308]). |
| - time: `poll_tick` fn to `time::Interval` ([#3316]). |
| |
| [#3065]: https://github.com/tokio-rs/tokio/pull/3065 |
| [#3125]: https://github.com/tokio-rs/tokio/pull/3125 |
| [#3223]: https://github.com/tokio-rs/tokio/pull/3223 |
| [#3234]: https://github.com/tokio-rs/tokio/pull/3234 |
| [#3246]: https://github.com/tokio-rs/tokio/pull/3246 |
| [#3259]: https://github.com/tokio-rs/tokio/pull/3259 |
| [#3262]: https://github.com/tokio-rs/tokio/pull/3262 |
| [#3263]: https://github.com/tokio-rs/tokio/pull/3263 |
| [#3264]: https://github.com/tokio-rs/tokio/pull/3264 |
| [#3266]: https://github.com/tokio-rs/tokio/pull/3266 |
| [#3269]: https://github.com/tokio-rs/tokio/pull/3269 |
| [#3277]: https://github.com/tokio-rs/tokio/pull/3277 |
| [#3278]: https://github.com/tokio-rs/tokio/pull/3278 |
| [#3287]: https://github.com/tokio-rs/tokio/pull/3287 |
| [#3289]: https://github.com/tokio-rs/tokio/pull/3289 |
| [#3298]: https://github.com/tokio-rs/tokio/pull/3298 |
| [#3299]: https://github.com/tokio-rs/tokio/pull/3299 |
| [#3304]: https://github.com/tokio-rs/tokio/pull/3304 |
| [#3306]: https://github.com/tokio-rs/tokio/pull/3306 |
| [#3308]: https://github.com/tokio-rs/tokio/pull/3308 |
| [#3316]: https://github.com/tokio-rs/tokio/pull/3316 |
| |
| # 0.3.6 (December 14, 2020) |
| |
| ### Fixed |
| |
| - rt: fix deadlock in shutdown ([#3228]) |
| - rt: fix panic in task abort when off rt ([#3159]) |
| - sync: make `add_permits` panic with usize::MAX >> 3 permits ([#3188]) |
| - time: Fix race condition in timer drop ([#3229]) |
| - watch: fix spurious wakeup ([#3244]) |
| |
| ### Added |
| |
| - example: add back udp-codec example ([#3205]) |
| - net: add `TcpStream::into_std` ([#3189]) |
| |
| [#3159]: https://github.com/tokio-rs/tokio/pull/3159 |
| [#3188]: https://github.com/tokio-rs/tokio/pull/3188 |
| [#3189]: https://github.com/tokio-rs/tokio/pull/3189 |
| [#3205]: https://github.com/tokio-rs/tokio/pull/3205 |
| [#3228]: https://github.com/tokio-rs/tokio/pull/3228 |
| [#3229]: https://github.com/tokio-rs/tokio/pull/3229 |
| [#3244]: https://github.com/tokio-rs/tokio/pull/3244 |
| |
| # 0.3.5 (November 30, 2020) |
| |
| ### Fixed |
| |
| - rt: fix `shutdown_timeout(0)` ([#3196]). |
| - time: fixed race condition with small sleeps ([#3069]). |
| |
| ### Added |
| |
| - io: `AsyncFd::with_interest()` ([#3167]). |
| - signal: `CtrlC` stream on windows ([#3186]). |
| |
| [#3069]: https://github.com/tokio-rs/tokio/pull/3069 |
| [#3167]: https://github.com/tokio-rs/tokio/pull/3167 |
| [#3186]: https://github.com/tokio-rs/tokio/pull/3186 |
| [#3196]: https://github.com/tokio-rs/tokio/pull/3196 |
| |
| # 0.3.4 (November 18, 2020) |
| |
| ### Fixed |
| |
| - stream: `StreamMap` `Default` impl bound ([#3093]). |
| - io: `AsyncFd::into_inner()` should deregister the FD ([#3104]). |
| |
| ### Changed |
| |
| - meta: `parking_lot` feature enabled with `full` ([#3119]). |
| |
| ### Added |
| |
| - io: `AsyncWrite` vectored writes ([#3149]). |
| - net: TCP/UDP readiness and non-blocking ops ([#3130], [#2743], [#3138]). |
| - net: TCP socket option (linger, send/recv buf size) ([#3145], [#3143]). |
| - net: PID field in `UCred` with solaris/illumos ([#3085]). |
| - rt: `runtime::Handle` allows spawning onto a runtime ([#3079]). |
| - sync: `Notify::notify_waiters()` ([#3098]). |
| - sync: `acquire_many()`, `try_acquire_many()` to `Semaphore` ([#3067]). |
| |
| [#2743]: https://github.com/tokio-rs/tokio/pull/2743 |
| [#3067]: https://github.com/tokio-rs/tokio/pull/3067 |
| [#3079]: https://github.com/tokio-rs/tokio/pull/3079 |
| [#3085]: https://github.com/tokio-rs/tokio/pull/3085 |
| [#3093]: https://github.com/tokio-rs/tokio/pull/3093 |
| [#3098]: https://github.com/tokio-rs/tokio/pull/3098 |
| [#3104]: https://github.com/tokio-rs/tokio/pull/3104 |
| [#3119]: https://github.com/tokio-rs/tokio/pull/3119 |
| [#3130]: https://github.com/tokio-rs/tokio/pull/3130 |
| [#3138]: https://github.com/tokio-rs/tokio/pull/3138 |
| [#3143]: https://github.com/tokio-rs/tokio/pull/3143 |
| [#3145]: https://github.com/tokio-rs/tokio/pull/3145 |
| [#3149]: https://github.com/tokio-rs/tokio/pull/3149 |
| |
| # 0.3.3 (November 2, 2020) |
| |
| Fixes a soundness hole by adding a missing `Send` bound to |
| `Runtime::spawn_blocking()`. |
| |
| ### Fixed |
| |
| - rt: include missing `Send`, fixing soundness hole ([#3089]). |
| - tracing: avoid huge trace span names ([#3074]). |
| |
| ### Added |
| |
| - net: `TcpSocket::reuseport()`, `TcpSocket::set_reuseport()` ([#3083]). |
| - net: `TcpSocket::reuseaddr()` ([#3093]). |
| - net: `TcpSocket::local_addr()` ([#3093]). |
| - net: add pid to `UCred` ([#2633]). |
| |
| [#2633]: https://github.com/tokio-rs/tokio/pull/2633 |
| [#3074]: https://github.com/tokio-rs/tokio/pull/3074 |
| [#3083]: https://github.com/tokio-rs/tokio/pull/3083 |
| [#3089]: https://github.com/tokio-rs/tokio/pull/3089 |
| [#3093]: https://github.com/tokio-rs/tokio/pull/3093 |
| |
| # 0.3.2 (October 27, 2020) |
| |
| Adds `AsyncFd` as a replacement for v0.2's `PollEvented`. |
| |
| ### Fixed |
| |
| - io: fix a potential deadlock when shutting down the I/O driver ([#2903]). |
| - sync: `RwLockWriteGuard::downgrade()` bug ([#2957]). |
| |
| ### Added |
| |
| - io: `AsyncFd` for receiving readiness events on raw FDs ([#2903]). |
| - net: `poll_*` function on `UdpSocket` ([#2981]). |
| - net: `UdpSocket::take_error()` ([#3051]). |
| - sync: `oneshot::Sender::poll_closed()` ([#3032]). |
| |
| [#2903]: https://github.com/tokio-rs/tokio/pull/2903 |
| [#2957]: https://github.com/tokio-rs/tokio/pull/2957 |
| [#2981]: https://github.com/tokio-rs/tokio/pull/2981 |
| [#3032]: https://github.com/tokio-rs/tokio/pull/3032 |
| [#3051]: https://github.com/tokio-rs/tokio/pull/3051 |
| |
| # 0.3.1 (October 21, 2020) |
| |
| This release fixes an use-after-free in the IO driver. Additionally, the `read_buf` |
| and `write_buf` methods have been added back to the IO traits, as the bytes crate |
| is now on track to reach version 1.0 together with Tokio. |
| |
| ### Fixed |
| |
| - net: fix use-after-free ([#3019]). |
| - fs: ensure buffered data is written on shutdown ([#3009]). |
| |
| ### Added |
| |
| - io: `copy_buf()` ([#2884]). |
| - io: `AsyncReadExt::read_buf()`, `AsyncReadExt::write_buf()` for working with |
| `Buf`/`BufMut` ([#3003]). |
| - rt: `Runtime::spawn_blocking()` ([#2980]). |
| - sync: `watch::Sender::is_closed()` ([#2991]). |
| |
| [#2884]: https://github.com/tokio-rs/tokio/pull/2884 |
| [#2980]: https://github.com/tokio-rs/tokio/pull/2980 |
| [#2991]: https://github.com/tokio-rs/tokio/pull/2991 |
| [#3003]: https://github.com/tokio-rs/tokio/pull/3003 |
| [#3009]: https://github.com/tokio-rs/tokio/pull/3009 |
| [#3019]: https://github.com/tokio-rs/tokio/pull/3019 |
| |
| # 0.3.0 (October 15, 2020) |
| |
| This represents a 1.0 beta release. APIs are polished and future-proofed. APIs |
| not included for 1.0 stabilization have been removed. |
| |
| Biggest changes are: |
| |
| - I/O driver internal rewrite. The windows implementation includes significant |
| changes. |
| - Runtime API is polished, especially with how it interacts with feature flag |
| combinations. |
| - Feature flags are simplified |
| - `rt-core` and `rt-util` are combined to `rt` |
| - `rt-threaded` is renamed to `rt-multi-thread` to match builder API |
| - `tcp`, `udp`, `uds`, `dns` are combied to `net`. |
| - `parking_lot` is included with `full` |
| |
| ### Changes |
| |
| - meta: Minimum supported Rust version is now 1.45. |
| - io: `AsyncRead` trait now takes `ReadBuf` in order to safely handle reading |
| into uninitialized memory ([#2758]). |
| - io: Internal I/O driver storage is now able to compact ([#2757]). |
| - rt: `Runtime::block_on` now takes `&self` ([#2782]). |
| - sync: `watch` reworked to decouple receiving a change notification from |
| receiving the value ([#2814], [#2806]). |
| - sync: `Notify::notify` is renamed to `notify_one` ([#2822]). |
| - process: `Child::kill` is now an `async fn` that cleans zombies ([#2823]). |
| - sync: use `const fn` constructors as possible ([#2833], [#2790]) |
| - signal: reduce cross-thread notification ([#2835]). |
| - net: tcp,udp,uds types support operations with `&self` ([#2828], [#2919], [#2934]). |
| - sync: blocking `mpsc` channel supports `send` with `&self` ([#2861]). |
| - time: rename `delay_for` and `delay_until` to `sleep` and `sleep_until` ([#2826]). |
| - io: upgrade to `mio` 0.7 ([#2893]). |
| - io: `AsyncSeek` trait is tweaked ([#2885]). |
| - fs: `File` operations take `&self` ([#2930]). |
| - rt: runtime API, and `#[tokio::main]` macro polish ([#2876]) |
| - rt: `Runtime::enter` uses an RAII guard instead of a closure ([#2954]). |
| - net: the `from_std` function on all sockets no longer sets socket into non-blocking mode ([#2893]) |
| |
| ### Added |
| |
| - sync: `map` function to lock guards ([#2445]). |
| - sync: `blocking_recv` and `blocking_send` fns to `mpsc` for use outside of Tokio ([#2685]). |
| - rt: `Builder::thread_name_fn` for configuring thread names ([#1921]). |
| - fs: impl `FromRawFd` and `FromRawHandle` for `File` ([#2792]). |
| - process: `Child::wait` and `Child::try_wait` ([#2796]). |
| - rt: support configuring thread keep-alive duration ([#2809]). |
| - rt: `task::JoinHandle::abort` forcibly cancels a spawned task ([#2474]). |
| - sync: `RwLock` write guard to read guard downgrading ([#2733]). |
| - net: add `poll_*` functions that take `&self` to all net types ([#2845]) |
| - sync: `get_mut()` for `Mutex`, `RwLock` ([#2856]). |
| - sync: `mpsc::Sender::closed()` waits for `Receiver` half to close ([#2840]). |
| - sync: `mpsc::Sender::is_closed()` returns true if `Receiver` half is closed ([#2726]). |
| - stream: `iter` and `iter_mut` to `StreamMap` ([#2890]). |
| - net: implement `AsRawSocket` on windows ([#2911]). |
| - net: `TcpSocket` creates a socket without binding or listening ([#2920]). |
| |
| ### Removed |
| |
| - io: vectored ops are removed from `AsyncRead`, `AsyncWrite` traits ([#2882]). |
| - io: `mio` is removed from the public API. `PollEvented` and` Registration` are |
| removed ([#2893]). |
| - io: remove `bytes` from public API. `Buf` and `BufMut` implementation are |
| removed ([#2908]). |
| - time: `DelayQueue` is moved to `tokio-util` ([#2897]). |
| |
| ### Fixed |
| |
| - io: `stdout` and `stderr` buffering on windows ([#2734]). |
| |
| [#1921]: https://github.com/tokio-rs/tokio/pull/1921 |
| [#2445]: https://github.com/tokio-rs/tokio/pull/2445 |
| [#2474]: https://github.com/tokio-rs/tokio/pull/2474 |
| [#2685]: https://github.com/tokio-rs/tokio/pull/2685 |
| [#2726]: https://github.com/tokio-rs/tokio/pull/2726 |
| [#2733]: https://github.com/tokio-rs/tokio/pull/2733 |
| [#2734]: https://github.com/tokio-rs/tokio/pull/2734 |
| [#2757]: https://github.com/tokio-rs/tokio/pull/2757 |
| [#2758]: https://github.com/tokio-rs/tokio/pull/2758 |
| [#2782]: https://github.com/tokio-rs/tokio/pull/2782 |
| [#2790]: https://github.com/tokio-rs/tokio/pull/2790 |
| [#2792]: https://github.com/tokio-rs/tokio/pull/2792 |
| [#2796]: https://github.com/tokio-rs/tokio/pull/2796 |
| [#2806]: https://github.com/tokio-rs/tokio/pull/2806 |
| [#2809]: https://github.com/tokio-rs/tokio/pull/2809 |
| [#2814]: https://github.com/tokio-rs/tokio/pull/2814 |
| [#2822]: https://github.com/tokio-rs/tokio/pull/2822 |
| [#2823]: https://github.com/tokio-rs/tokio/pull/2823 |
| [#2826]: https://github.com/tokio-rs/tokio/pull/2826 |
| [#2828]: https://github.com/tokio-rs/tokio/pull/2828 |
| [#2833]: https://github.com/tokio-rs/tokio/pull/2833 |
| [#2835]: https://github.com/tokio-rs/tokio/pull/2835 |
| [#2840]: https://github.com/tokio-rs/tokio/pull/2840 |
| [#2845]: https://github.com/tokio-rs/tokio/pull/2845 |
| [#2856]: https://github.com/tokio-rs/tokio/pull/2856 |
| [#2861]: https://github.com/tokio-rs/tokio/pull/2861 |
| [#2876]: https://github.com/tokio-rs/tokio/pull/2876 |
| [#2882]: https://github.com/tokio-rs/tokio/pull/2882 |
| [#2885]: https://github.com/tokio-rs/tokio/pull/2885 |
| [#2890]: https://github.com/tokio-rs/tokio/pull/2890 |
| [#2893]: https://github.com/tokio-rs/tokio/pull/2893 |
| [#2897]: https://github.com/tokio-rs/tokio/pull/2897 |
| [#2908]: https://github.com/tokio-rs/tokio/pull/2908 |
| [#2911]: https://github.com/tokio-rs/tokio/pull/2911 |
| [#2919]: https://github.com/tokio-rs/tokio/pull/2919 |
| [#2920]: https://github.com/tokio-rs/tokio/pull/2920 |
| [#2930]: https://github.com/tokio-rs/tokio/pull/2930 |
| [#2934]: https://github.com/tokio-rs/tokio/pull/2934 |
| [#2954]: https://github.com/tokio-rs/tokio/pull/2954 |
| |
| # 0.2.22 (July 21, 2020) |
| |
| ### Fixes |
| |
| - docs: misc improvements ([#2572], [#2658], [#2663], [#2656], [#2647], [#2630], [#2487], [#2621], |
| [#2624], [#2600], [#2623], [#2622], [#2577], [#2569], [#2589], [#2575], [#2540], [#2564], [#2567], |
| [#2520], [#2521], [#2493]) |
| - rt: allow calls to `block_on` inside calls to `block_in_place` that are |
| themselves inside `block_on` ([#2645]) |
| - net: fix non-portable behavior when dropping `TcpStream` `OwnedWriteHalf` ([#2597]) |
| - io: improve stack usage by allocating large buffers on directly on the heap |
| ([#2634]) |
| - io: fix unsound pin projection in `AsyncReadExt::read_buf` and |
| `AsyncWriteExt::write_buf` ([#2612]) |
| - io: fix unnecessary zeroing for `AsyncRead` implementors ([#2525]) |
| - io: Fix `BufReader` not correctly forwarding `poll_write_buf` ([#2654]) |
| - io: fix panic in `AsyncReadExt::read_line` ([#2541]) |
| |
| ### Changes |
| |
| - coop: returning `Poll::Pending` no longer decrements the task budget ([#2549]) |
| |
| ### Added |
| |
| - io: little-endian variants of `AsyncReadExt` and `AsyncWriteExt` methods |
| ([#1915]) |
| - task: add [`tracing`] instrumentation to spawned tasks ([#2655]) |
| - sync: allow unsized types in `Mutex` and `RwLock` (via `default` constructors) |
| ([#2615]) |
| - net: add `ToSocketAddrs` implementation for `&[SocketAddr]` ([#2604]) |
| - fs: add `OpenOptionsExt` for `OpenOptions` ([#2515]) |
| - fs: add `DirBuilder` ([#2524]) |
| |
| [`tracing`]: https://crates.io/crates/tracing |
| [#1915]: https://github.com/tokio-rs/tokio/pull/1915 |
| [#2487]: https://github.com/tokio-rs/tokio/pull/2487 |
| [#2493]: https://github.com/tokio-rs/tokio/pull/2493 |
| [#2515]: https://github.com/tokio-rs/tokio/pull/2515 |
| [#2520]: https://github.com/tokio-rs/tokio/pull/2520 |
| [#2521]: https://github.com/tokio-rs/tokio/pull/2521 |
| [#2524]: https://github.com/tokio-rs/tokio/pull/2524 |
| [#2525]: https://github.com/tokio-rs/tokio/pull/2525 |
| [#2540]: https://github.com/tokio-rs/tokio/pull/2540 |
| [#2541]: https://github.com/tokio-rs/tokio/pull/2541 |
| [#2549]: https://github.com/tokio-rs/tokio/pull/2549 |
| [#2564]: https://github.com/tokio-rs/tokio/pull/2564 |
| [#2567]: https://github.com/tokio-rs/tokio/pull/2567 |
| [#2569]: https://github.com/tokio-rs/tokio/pull/2569 |
| [#2572]: https://github.com/tokio-rs/tokio/pull/2572 |
| [#2575]: https://github.com/tokio-rs/tokio/pull/2575 |
| [#2577]: https://github.com/tokio-rs/tokio/pull/2577 |
| [#2589]: https://github.com/tokio-rs/tokio/pull/2589 |
| [#2597]: https://github.com/tokio-rs/tokio/pull/2597 |
| [#2600]: https://github.com/tokio-rs/tokio/pull/2600 |
| [#2604]: https://github.com/tokio-rs/tokio/pull/2604 |
| [#2612]: https://github.com/tokio-rs/tokio/pull/2612 |
| [#2615]: https://github.com/tokio-rs/tokio/pull/2615 |
| [#2621]: https://github.com/tokio-rs/tokio/pull/2621 |
| [#2622]: https://github.com/tokio-rs/tokio/pull/2622 |
| [#2623]: https://github.com/tokio-rs/tokio/pull/2623 |
| [#2624]: https://github.com/tokio-rs/tokio/pull/2624 |
| [#2630]: https://github.com/tokio-rs/tokio/pull/2630 |
| [#2634]: https://github.com/tokio-rs/tokio/pull/2634 |
| [#2645]: https://github.com/tokio-rs/tokio/pull/2645 |
| [#2647]: https://github.com/tokio-rs/tokio/pull/2647 |
| [#2654]: https://github.com/tokio-rs/tokio/pull/2654 |
| [#2655]: https://github.com/tokio-rs/tokio/pull/2655 |
| [#2656]: https://github.com/tokio-rs/tokio/pull/2656 |
| [#2658]: https://github.com/tokio-rs/tokio/pull/2658 |
| [#2663]: https://github.com/tokio-rs/tokio/pull/2663 |
| |
| # 0.2.21 (May 13, 2020) |
| |
| ### Fixes |
| |
| - macros: disambiguate built-in `#[test]` attribute in macro expansion ([#2503]) |
| - rt: `LocalSet` and task budgeting ([#2462]). |
| - rt: task budgeting with `block_in_place` ([#2502]). |
| - sync: release `broadcast` channel memory without sending a value ([#2509]). |
| - time: notify when resetting a `Delay` to a time in the past ([#2290]) |
| |
| ### Added |
| |
| - io: `get_mut`, `get_ref`, and `into_inner` to `Lines` ([#2450]). |
| - io: `mio::Ready` argument to `PollEvented` ([#2419]). |
| - os: illumos support ([#2486]). |
| - rt: `Handle::spawn_blocking` ([#2501]). |
| - sync: `OwnedMutexGuard` for `Arc<Mutex<T>>` ([#2455]). |
| |
| [#2290]: https://github.com/tokio-rs/tokio/pull/2290 |
| [#2419]: https://github.com/tokio-rs/tokio/pull/2419 |
| [#2450]: https://github.com/tokio-rs/tokio/pull/2450 |
| [#2455]: https://github.com/tokio-rs/tokio/pull/2455 |
| [#2462]: https://github.com/tokio-rs/tokio/pull/2462 |
| [#2486]: https://github.com/tokio-rs/tokio/pull/2486 |
| [#2501]: https://github.com/tokio-rs/tokio/pull/2501 |
| [#2502]: https://github.com/tokio-rs/tokio/pull/2502 |
| [#2503]: https://github.com/tokio-rs/tokio/pull/2503 |
| [#2509]: https://github.com/tokio-rs/tokio/pull/2509 |
| |
| # 0.2.20 (April 28, 2020) |
| |
| ### Fixes |
| |
| - sync: `broadcast` closing the channel no longer requires capacity ([#2448]). |
| - rt: regression when configuring runtime with `max_threads` less than number of CPUs ([#2457]). |
| |
| [#2448]: https://github.com/tokio-rs/tokio/pull/2448 |
| [#2457]: https://github.com/tokio-rs/tokio/pull/2457 |
| |
| # 0.2.19 (April 24, 2020) |
| |
| ### Fixes |
| |
| - docs: misc improvements ([#2400], [#2405], [#2414], [#2420], [#2423], [#2426], [#2427], [#2434], [#2436], [#2440]). |
| - rt: support `block_in_place` in more contexts ([#2409], [#2410]). |
| - stream: no panic in `merge()` and `chain()` when using `size_hint()` ([#2430]). |
| - task: include visibility modifier when defining a task-local ([#2416]). |
| |
| ### Added |
| |
| - rt: `runtime::Handle::block_on` ([#2437]). |
| - sync: owned `Semaphore` permit ([#2421]). |
| - tcp: owned split ([#2270]). |
| |
| [#2270]: https://github.com/tokio-rs/tokio/pull/2270 |
| [#2400]: https://github.com/tokio-rs/tokio/pull/2400 |
| [#2405]: https://github.com/tokio-rs/tokio/pull/2405 |
| [#2409]: https://github.com/tokio-rs/tokio/pull/2409 |
| [#2410]: https://github.com/tokio-rs/tokio/pull/2410 |
| [#2414]: https://github.com/tokio-rs/tokio/pull/2414 |
| [#2416]: https://github.com/tokio-rs/tokio/pull/2416 |
| [#2420]: https://github.com/tokio-rs/tokio/pull/2420 |
| [#2421]: https://github.com/tokio-rs/tokio/pull/2421 |
| [#2423]: https://github.com/tokio-rs/tokio/pull/2423 |
| [#2426]: https://github.com/tokio-rs/tokio/pull/2426 |
| [#2427]: https://github.com/tokio-rs/tokio/pull/2427 |
| [#2430]: https://github.com/tokio-rs/tokio/pull/2430 |
| [#2434]: https://github.com/tokio-rs/tokio/pull/2434 |
| [#2436]: https://github.com/tokio-rs/tokio/pull/2436 |
| [#2437]: https://github.com/tokio-rs/tokio/pull/2437 |
| [#2440]: https://github.com/tokio-rs/tokio/pull/2440 |
| |
| # 0.2.18 (April 12, 2020) |
| |
| ### Fixes |
| |
| - task: `LocalSet` was incorrectly marked as `Send` ([#2398]) |
| - io: correctly report `WriteZero` failure in `write_int` ([#2334]) |
| |
| [#2334]: https://github.com/tokio-rs/tokio/pull/2334 |
| [#2398]: https://github.com/tokio-rs/tokio/pull/2398 |
| |
| # 0.2.17 (April 9, 2020) |
| |
| ### Fixes |
| |
| - rt: bug in work-stealing queue ([#2387]) |
| |
| ### Changes |
| |
| - rt: threadpool uses logical CPU count instead of physical by default ([#2391]) |
| |
| [#2387]: https://github.com/tokio-rs/tokio/pull/2387 |
| [#2391]: https://github.com/tokio-rs/tokio/pull/2391 |
| |
| # 0.2.16 (April 3, 2020) |
| |
| ### Fixes |
| |
| - sync: fix a regression where `Mutex`, `Semaphore`, and `RwLock` futures no |
| longer implement `Sync` ([#2375]) |
| - fs: fix `fs::copy` not copying file permissions ([#2354]) |
| |
| ### Added |
| |
| - time: added `deadline` method to `delay_queue::Expired` ([#2300]) |
| - io: added `StreamReader` ([#2052]) |
| |
| [#2052]: https://github.com/tokio-rs/tokio/pull/2052 |
| [#2300]: https://github.com/tokio-rs/tokio/pull/2300 |
| [#2354]: https://github.com/tokio-rs/tokio/pull/2354 |
| [#2375]: https://github.com/tokio-rs/tokio/pull/2375 |
| |
| # 0.2.15 (April 2, 2020) |
| |
| ### Fixes |
| |
| - rt: fix queue regression ([#2362]). |
| |
| ### Added |
| |
| - sync: Add disarm to `mpsc::Sender` ([#2358]). |
| |
| [#2358]: https://github.com/tokio-rs/tokio/pull/2358 |
| [#2362]: https://github.com/tokio-rs/tokio/pull/2362 |
| |
| # 0.2.14 (April 1, 2020) |
| |
| ### Fixes |
| |
| - rt: concurrency bug in scheduler ([#2273]). |
| - rt: concurrency bug with shell runtime ([#2333]). |
| - test-util: correct pause/resume of time ([#2253]). |
| - time: `DelayQueue` correct wakeup after `insert` ([#2285]). |
| |
| ### Added |
| |
| - io: impl `RawFd`, `AsRawHandle` for std io types ([#2335]). |
| - rt: automatic cooperative task yielding ([#2160], [#2343], [#2349]). |
| - sync: `RwLock::into_inner` ([#2321]). |
| |
| ### Changed |
| |
| - sync: semaphore, mutex internals rewritten to avoid allocations ([#2325]). |
| |
| [#2160]: https://github.com/tokio-rs/tokio/pull/2160 |
| [#2253]: https://github.com/tokio-rs/tokio/pull/2253 |
| [#2273]: https://github.com/tokio-rs/tokio/pull/2273 |
| [#2285]: https://github.com/tokio-rs/tokio/pull/2285 |
| [#2321]: https://github.com/tokio-rs/tokio/pull/2321 |
| [#2325]: https://github.com/tokio-rs/tokio/pull/2325 |
| [#2333]: https://github.com/tokio-rs/tokio/pull/2333 |
| [#2335]: https://github.com/tokio-rs/tokio/pull/2335 |
| [#2343]: https://github.com/tokio-rs/tokio/pull/2343 |
| [#2349]: https://github.com/tokio-rs/tokio/pull/2349 |
| |
| # 0.2.13 (February 28, 2020) |
| |
| ### Fixes |
| |
| - macros: unresolved import in `pin!` ([#2281]). |
| |
| [#2281]: https://github.com/tokio-rs/tokio/pull/2281 |
| |
| # 0.2.12 (February 27, 2020) |
| |
| ### Fixes |
| |
| - net: `UnixStream::poll_shutdown` should call `shutdown(Write)` ([#2245]). |
| - process: Wake up read and write on `EPOLLERR` ([#2218]). |
| - rt: potential deadlock when using `block_in_place` and shutting down the |
| runtime ([#2119]). |
| - rt: only detect number of CPUs if `core_threads` not specified ([#2238]). |
| - sync: reduce `watch::Receiver` struct size ([#2191]). |
| - time: succeed when setting delay of `$MAX-1` ([#2184]). |
| - time: avoid having to poll `DelayQueue` after inserting new delay ([#2217]). |
| |
| ### Added |
| |
| - macros: `pin!` variant that assigns to identifier and pins ([#2274]). |
| - net: impl `Stream` for `Listener` types ([#2275]). |
| - rt: `Runtime::shutdown_timeout` waits for runtime to shutdown for specified |
| duration ([#2186]). |
| - stream: `StreamMap` merges streams and can insert / remove streams at |
| runtime ([#2185]). |
| - stream: `StreamExt::skip()` skips a fixed number of items ([#2204]). |
| - stream: `StreamExt::skip_while()` skips items based on a predicate ([#2205]). |
| - sync: `Notify` provides basic `async` / `await` task notification ([#2210]). |
| - sync: `Mutex::into_inner` retrieves guarded data ([#2250]). |
| - sync: `mpsc::Sender::send_timeout` sends, waiting for up to specified duration |
| for channel capacity ([#2227]). |
| - time: impl `Ord` and `Hash` for `Instant` ([#2239]). |
| |
| [#2119]: https://github.com/tokio-rs/tokio/pull/2119 |
| [#2184]: https://github.com/tokio-rs/tokio/pull/2184 |
| [#2185]: https://github.com/tokio-rs/tokio/pull/2185 |
| [#2186]: https://github.com/tokio-rs/tokio/pull/2186 |
| [#2191]: https://github.com/tokio-rs/tokio/pull/2191 |
| [#2204]: https://github.com/tokio-rs/tokio/pull/2204 |
| [#2205]: https://github.com/tokio-rs/tokio/pull/2205 |
| [#2210]: https://github.com/tokio-rs/tokio/pull/2210 |
| [#2217]: https://github.com/tokio-rs/tokio/pull/2217 |
| [#2218]: https://github.com/tokio-rs/tokio/pull/2218 |
| [#2227]: https://github.com/tokio-rs/tokio/pull/2227 |
| [#2238]: https://github.com/tokio-rs/tokio/pull/2238 |
| [#2239]: https://github.com/tokio-rs/tokio/pull/2239 |
| [#2245]: https://github.com/tokio-rs/tokio/pull/2245 |
| [#2250]: https://github.com/tokio-rs/tokio/pull/2250 |
| [#2274]: https://github.com/tokio-rs/tokio/pull/2274 |
| [#2275]: https://github.com/tokio-rs/tokio/pull/2275 |
| |
| # 0.2.11 (January 27, 2020) |
| |
| ### Fixes |
| |
| - docs: misc fixes and tweaks ([#2155], [#2103], [#2027], [#2167], [#2175]). |
| - macros: handle generics in `#[tokio::main]` method ([#2177]). |
| - sync: `broadcast` potential lost notifications ([#2135]). |
| - rt: improve "no runtime" panic messages ([#2145]). |
| |
| ### Added |
| |
| - optional support for using `parking_lot` internally ([#2164]). |
| - fs: `fs::copy`, an async version of `std::fs::copy` ([#2079]). |
| - macros: `select!` waits for the first branch to complete ([#2152]). |
| - macros: `join!` waits for all branches to complete ([#2158]). |
| - macros: `try_join!` waits for all branches to complete or the first error ([#2169]). |
| - macros: `pin!` pins a value to the stack ([#2163]). |
| - net: `ReadHalf::poll()` and `ReadHalf::poll_peak` ([#2151]) |
| - stream: `StreamExt::timeout()` sets a per-item max duration ([#2149]). |
| - stream: `StreamExt::fold()` applies a function, producing a single value. ([#2122]). |
| - sync: impl `Eq`, `PartialEq` for `oneshot::RecvError` ([#2168]). |
| - task: methods for inspecting the `JoinError` cause ([#2051]). |
| |
| [#2027]: https://github.com/tokio-rs/tokio/pull/2027 |
| [#2051]: https://github.com/tokio-rs/tokio/pull/2051 |
| [#2079]: https://github.com/tokio-rs/tokio/pull/2079 |
| [#2103]: https://github.com/tokio-rs/tokio/pull/2103 |
| [#2122]: https://github.com/tokio-rs/tokio/pull/2122 |
| [#2135]: https://github.com/tokio-rs/tokio/pull/2135 |
| [#2145]: https://github.com/tokio-rs/tokio/pull/2145 |
| [#2149]: https://github.com/tokio-rs/tokio/pull/2149 |
| [#2151]: https://github.com/tokio-rs/tokio/pull/2151 |
| [#2152]: https://github.com/tokio-rs/tokio/pull/2152 |
| [#2155]: https://github.com/tokio-rs/tokio/pull/2155 |
| [#2158]: https://github.com/tokio-rs/tokio/pull/2158 |
| [#2163]: https://github.com/tokio-rs/tokio/pull/2163 |
| [#2164]: https://github.com/tokio-rs/tokio/pull/2164 |
| [#2167]: https://github.com/tokio-rs/tokio/pull/2167 |
| [#2168]: https://github.com/tokio-rs/tokio/pull/2168 |
| [#2169]: https://github.com/tokio-rs/tokio/pull/2169 |
| [#2175]: https://github.com/tokio-rs/tokio/pull/2175 |
| [#2177]: https://github.com/tokio-rs/tokio/pull/2177 |
| |
| # 0.2.10 (January 21, 2020) |
| |
| ### Fixes |
| |
| - `#[tokio::main]` when `rt-core` feature flag is not enabled ([#2139]). |
| - remove `AsyncBufRead` from `BufStream` impl block ([#2108]). |
| - potential undefined behavior when implementing `AsyncRead` incorrectly ([#2030]). |
| |
| ### Added |
| |
| - `BufStream::with_capacity` ([#2125]). |
| - impl `From` and `Default` for `RwLock` ([#2089]). |
| - `io::ReadHalf::is_pair_of` checks if provided `WriteHalf` is for the same |
| underlying object ([#1762], [#2144]). |
| - `runtime::Handle::try_current()` returns a handle to the current runtime ([#2118]). |
| - `stream::empty()` returns an immediately ready empty stream ([#2092]). |
| - `stream::once(val)` returns a stream that yields a single value: `val` ([#2094]). |
| - `stream::pending()` returns a stream that never becomes ready ([#2092]). |
| - `StreamExt::chain()` sequences a second stream after the first completes ([#2093]). |
| - `StreamExt::collect()` transform a stream into a collection ([#2109]). |
| - `StreamExt::fuse` ends the stream after the first `None` ([#2085]). |
| - `StreamExt::merge` combines two streams, yielding values as they become ready ([#2091]). |
| - Task-local storage ([#2126]). |
| |
| [#1762]: https://github.com/tokio-rs/tokio/pull/1762 |
| [#2030]: https://github.com/tokio-rs/tokio/pull/2030 |
| [#2085]: https://github.com/tokio-rs/tokio/pull/2085 |
| [#2089]: https://github.com/tokio-rs/tokio/pull/2089 |
| [#2091]: https://github.com/tokio-rs/tokio/pull/2091 |
| [#2092]: https://github.com/tokio-rs/tokio/pull/2092 |
| [#2093]: https://github.com/tokio-rs/tokio/pull/2093 |
| [#2094]: https://github.com/tokio-rs/tokio/pull/2094 |
| [#2108]: https://github.com/tokio-rs/tokio/pull/2108 |
| [#2109]: https://github.com/tokio-rs/tokio/pull/2109 |
| [#2118]: https://github.com/tokio-rs/tokio/pull/2118 |
| [#2125]: https://github.com/tokio-rs/tokio/pull/2125 |
| [#2126]: https://github.com/tokio-rs/tokio/pull/2126 |
| [#2139]: https://github.com/tokio-rs/tokio/pull/2139 |
| [#2144]: https://github.com/tokio-rs/tokio/pull/2144 |
| |
| # 0.2.9 (January 9, 2020) |
| |
| ### Fixes |
| |
| - `AsyncSeek` impl for `File` ([#1986]). |
| - rt: shutdown deadlock in `threaded_scheduler` ([#2074], [#2082]). |
| - rt: memory ordering when dropping `JoinHandle` ([#2044]). |
| - docs: misc API documentation fixes and improvements. |
| |
| [#1986]: https://github.com/tokio-rs/tokio/pull/1986 |
| [#2044]: https://github.com/tokio-rs/tokio/pull/2044 |
| [#2074]: https://github.com/tokio-rs/tokio/pull/2074 |
| [#2082]: https://github.com/tokio-rs/tokio/pull/2082 |
| |
| # 0.2.8 (January 7, 2020) |
| |
| ### Fixes |
| |
| - depend on new version of `tokio-macros`. |
| |
| # 0.2.7 (January 7, 2020) |
| |
| ### Fixes |
| |
| - potential deadlock when dropping `basic_scheduler` Runtime. |
| - calling `spawn_blocking` from within a `spawn_blocking` ([#2006]). |
| - storing a `Runtime` instance in a thread-local ([#2011]). |
| - miscellaneous documentation fixes. |
| - rt: fix `Waker::will_wake` to return true when tasks match ([#2045]). |
| - test-util: `time::advance` runs pending tasks before changing the time ([#2059]). |
| |
| ### Added |
| |
| - `net::lookup_host` maps a `T: ToSocketAddrs` to a stream of `SocketAddrs` ([#1870]). |
| - `process::Child` fields are made public to match `std` ([#2014]). |
| - impl `Stream` for `sync::broadcast::Receiver` ([#2012]). |
| - `sync::RwLock` provides an asynchonous read-write lock ([#1699]). |
| - `runtime::Handle::current` returns the handle for the current runtime ([#2040]). |
| - `StreamExt::filter` filters stream values according to a predicate ([#2001]). |
| - `StreamExt::filter_map` simultaneously filter and map stream values ([#2001]). |
| - `StreamExt::try_next` convenience for streams of `Result<T, E>` ([#2005]). |
| - `StreamExt::take` limits a stream to a specified number of values ([#2025]). |
| - `StreamExt::take_while` limits a stream based on a predicate ([#2029]). |
| - `StreamExt::all` tests if every element of the stream matches a predicate ([#2035]). |
| - `StreamExt::any` tests if any element of the stream matches a predicate ([#2034]). |
| - `task::LocalSet.await` runs spawned tasks until the set is idle ([#1971]). |
| - `time::DelayQueue::len` returns the number entries in the queue ([#1755]). |
| - expose runtime options from the `#[tokio::main]` and `#[tokio::test]` ([#2022]). |
| |
| [#1699]: https://github.com/tokio-rs/tokio/pull/1699 |
| [#1755]: https://github.com/tokio-rs/tokio/pull/1755 |
| [#1870]: https://github.com/tokio-rs/tokio/pull/1870 |
| [#1971]: https://github.com/tokio-rs/tokio/pull/1971 |
| [#2001]: https://github.com/tokio-rs/tokio/pull/2001 |
| [#2005]: https://github.com/tokio-rs/tokio/pull/2005 |
| [#2006]: https://github.com/tokio-rs/tokio/pull/2006 |
| [#2011]: https://github.com/tokio-rs/tokio/pull/2011 |
| [#2012]: https://github.com/tokio-rs/tokio/pull/2012 |
| [#2014]: https://github.com/tokio-rs/tokio/pull/2014 |
| [#2022]: https://github.com/tokio-rs/tokio/pull/2022 |
| [#2025]: https://github.com/tokio-rs/tokio/pull/2025 |
| [#2029]: https://github.com/tokio-rs/tokio/pull/2029 |
| [#2034]: https://github.com/tokio-rs/tokio/pull/2034 |
| [#2035]: https://github.com/tokio-rs/tokio/pull/2035 |
| [#2040]: https://github.com/tokio-rs/tokio/pull/2040 |
| [#2045]: https://github.com/tokio-rs/tokio/pull/2045 |
| [#2059]: https://github.com/tokio-rs/tokio/pull/2059 |
| |
| # 0.2.6 (December 19, 2019) |
| |
| ### Fixes |
| |
| - `fs::File::seek` API regression ([#1991]). |
| |
| [#1991]: https://github.com/tokio-rs/tokio/pull/1991 |
| |
| # 0.2.5 (December 18, 2019) |
| |
| ### Added |
| |
| - `io::AsyncSeek` trait ([#1924]). |
| - `Mutex::try_lock` ([#1939]) |
| - `mpsc::Receiver::try_recv` and `mpsc::UnboundedReceiver::try_recv` ([#1939]). |
| - `writev` support for `TcpStream` ([#1956]). |
| - `time::throttle` for throttling streams ([#1949]). |
| - implement `Stream` for `time::DelayQueue` ([#1975]). |
| - `sync::broadcast` provides a fan-out channel ([#1943]). |
| - `sync::Semaphore` provides an async semaphore ([#1973]). |
| - `stream::StreamExt` provides stream utilities ([#1962]). |
| |
| ### Fixes |
| |
| - deadlock risk while shutting down the runtime ([#1972]). |
| - panic while shutting down the runtime ([#1978]). |
| - `sync::MutexGuard` debug output ([#1961]). |
| - misc doc improvements ([#1933], [#1934], [#1940], [#1942]). |
| |
| ### Changes |
| |
| - runtime threads are configured with `runtime::Builder::core_threads` and |
| `runtime::Builder::max_threads`. `runtime::Builder::num_threads` is |
| deprecated ([#1977]). |
| |
| [#1924]: https://github.com/tokio-rs/tokio/pull/1924 |
| [#1933]: https://github.com/tokio-rs/tokio/pull/1933 |
| [#1934]: https://github.com/tokio-rs/tokio/pull/1934 |
| [#1939]: https://github.com/tokio-rs/tokio/pull/1939 |
| [#1940]: https://github.com/tokio-rs/tokio/pull/1940 |
| [#1942]: https://github.com/tokio-rs/tokio/pull/1942 |
| [#1943]: https://github.com/tokio-rs/tokio/pull/1943 |
| [#1949]: https://github.com/tokio-rs/tokio/pull/1949 |
| [#1956]: https://github.com/tokio-rs/tokio/pull/1956 |
| [#1961]: https://github.com/tokio-rs/tokio/pull/1961 |
| [#1962]: https://github.com/tokio-rs/tokio/pull/1962 |
| [#1972]: https://github.com/tokio-rs/tokio/pull/1972 |
| [#1973]: https://github.com/tokio-rs/tokio/pull/1973 |
| [#1975]: https://github.com/tokio-rs/tokio/pull/1975 |
| [#1977]: https://github.com/tokio-rs/tokio/pull/1977 |
| [#1978]: https://github.com/tokio-rs/tokio/pull/1978 |
| |
| # 0.2.4 (December 6, 2019) |
| |
| ### Fixes |
| |
| - `sync::Mutex` deadlock when `lock()` future is dropped early ([#1898]). |
| |
| [#1898]: https://github.com/tokio-rs/tokio/pull/1898 |
| |
| # 0.2.3 (December 6, 2019) |
| |
| ### Added |
| |
| - read / write integers using `AsyncReadExt` and `AsyncWriteExt` ([#1863]). |
| - `read_buf` / `write_buf` for reading / writing `Buf` / `BufMut` ([#1881]). |
| - `TcpStream::poll_peek` - pollable API for performing TCP peek ([#1864]). |
| - `sync::oneshot::error::TryRecvError` provides variants to detect the error |
| kind ([#1874]). |
| - `LocalSet::block_on` accepts `!'static` task ([#1882]). |
| - `task::JoinError` is now `Sync` ([#1888]). |
| - impl conversions between `tokio::time::Instant` and |
| `std::time::Instant` ([#1904]). |
| |
| ### Fixes |
| |
| - calling `spawn_blocking` after runtime shutdown ([#1875]). |
| - `LocalSet` drop inifinite loop ([#1892]). |
| - `LocalSet` hang under load ([#1905]). |
| - improved documentation ([#1865], [#1866], [#1868], [#1874], [#1876], [#1911]). |
| |
| [#1863]: https://github.com/tokio-rs/tokio/pull/1863 |
| [#1864]: https://github.com/tokio-rs/tokio/pull/1864 |
| [#1865]: https://github.com/tokio-rs/tokio/pull/1865 |
| [#1866]: https://github.com/tokio-rs/tokio/pull/1866 |
| [#1868]: https://github.com/tokio-rs/tokio/pull/1868 |
| [#1874]: https://github.com/tokio-rs/tokio/pull/1874 |
| [#1875]: https://github.com/tokio-rs/tokio/pull/1875 |
| [#1876]: https://github.com/tokio-rs/tokio/pull/1876 |
| [#1881]: https://github.com/tokio-rs/tokio/pull/1881 |
| [#1882]: https://github.com/tokio-rs/tokio/pull/1882 |
| [#1888]: https://github.com/tokio-rs/tokio/pull/1888 |
| [#1892]: https://github.com/tokio-rs/tokio/pull/1892 |
| [#1904]: https://github.com/tokio-rs/tokio/pull/1904 |
| [#1905]: https://github.com/tokio-rs/tokio/pull/1905 |
| [#1911]: https://github.com/tokio-rs/tokio/pull/1911 |
| |
| # 0.2.2 (November 29, 2019) |
| |
| ### Fixes |
| |
| - scheduling with `basic_scheduler` ([#1861]). |
| - update `spawn` panic message to specify that a task scheduler is required ([#1839]). |
| - API docs example for `runtime::Builder` to include a task scheduler ([#1841]). |
| - general documentation ([#1834]). |
| - building on illumos/solaris ([#1772]). |
| - panic when dropping `LocalSet` ([#1843]). |
| - API docs mention the required Cargo features for `Builder::{basic, threaded}_scheduler` ([#1858]). |
| |
| ### Added |
| |
| - impl `Stream` for `signal::unix::Signal` ([#1849]). |
| - API docs for platform specific behavior of `signal::ctrl_c` and `signal::unix::Signal` ([#1854]). |
| - API docs for `signal::unix::Signal::{recv, poll_recv}` and `signal::windows::CtrlBreak::{recv, poll_recv}` ([#1854]). |
| - `File::into_std` and `File::try_into_std` methods ([#1856]). |
| |
| [#1772]: https://github.com/tokio-rs/tokio/pull/1772 |
| [#1834]: https://github.com/tokio-rs/tokio/pull/1834 |
| [#1839]: https://github.com/tokio-rs/tokio/pull/1839 |
| [#1841]: https://github.com/tokio-rs/tokio/pull/1841 |
| [#1843]: https://github.com/tokio-rs/tokio/pull/1843 |
| [#1849]: https://github.com/tokio-rs/tokio/pull/1849 |
| [#1854]: https://github.com/tokio-rs/tokio/pull/1854 |
| [#1856]: https://github.com/tokio-rs/tokio/pull/1856 |
| [#1858]: https://github.com/tokio-rs/tokio/pull/1858 |
| [#1861]: https://github.com/tokio-rs/tokio/pull/1861 |
| |
| # 0.2.1 (November 26, 2019) |
| |
| ### Fixes |
| |
| - API docs for `TcpListener::incoming`, `UnixListener::incoming` ([#1831]). |
| |
| ### Added |
| |
| - `tokio::task::LocalSet` provides a strategy for spawning `!Send` tasks ([#1733]). |
| - export `tokio::time::Elapsed` ([#1826]). |
| - impl `AsRawFd`, `AsRawHandle` for `tokio::fs::File` ([#1827]). |
| |
| [#1733]: https://github.com/tokio-rs/tokio/pull/1733 |
| [#1826]: https://github.com/tokio-rs/tokio/pull/1826 |
| [#1827]: https://github.com/tokio-rs/tokio/pull/1827 |
| [#1831]: https://github.com/tokio-rs/tokio/pull/1831 |
| |
| # 0.2.0 (November 26, 2019) |
| |
| A major breaking change. Most implementation and APIs have changed one way or |
| another. This changelog entry contains a highlight |
| |
| ### Changed |
| |
| - APIs are updated to use `async / await`. |
| - most `tokio-*` crates are collapsed into this crate. |
| - Scheduler is rewritten. |
| - `tokio::spawn` returns a `JoinHandle`. |
| - A single I/O / timer is used per runtime. |
| - I/O driver uses a concurrent slab for allocating state. |
| - components are made available via feature flag. |
| - Use `bytes` 0.5 |
| - `tokio::codec` is moved to `tokio-util`. |
| |
| ### Removed |
| |
| - Standalone `timer` and `net` drivers are removed, use `Runtime` instead |
| - `current_thread` runtime is removed, use `tokio::runtime::Runtime` with |
| `basic_scheduler` instead. |
| |
| # 0.1.21 (May 30, 2019) |
| |
| ### Changed |
| |
| - Bump `tokio-trace-core` version to 0.2 ([#1111]). |
| |
| [#1111]: https://github.com/tokio-rs/tokio/pull/1111 |
| |
| # 0.1.20 (May 14, 2019) |
| |
| ### Added |
| |
| - `tokio::runtime::Builder::panic_handler` allows configuring handling |
| panics on the runtime ([#1055]). |
| |
| [#1055]: https://github.com/tokio-rs/tokio/pull/1055 |
| |
| # 0.1.19 (April 22, 2019) |
| |
| ### Added |
| |
| - Re-export `tokio::sync::Mutex` primitive ([#964]). |
| |
| [#964]: https://github.com/tokio-rs/tokio/pull/964 |
| |
| # 0.1.18 (March 22, 2019) |
| |
| ### Added |
| |
| - `TypedExecutor` re-export and implementations ([#993]). |
| |
| [#993]: https://github.com/tokio-rs/tokio/pull/993 |
| |
| # 0.1.17 (March 13, 2019) |
| |
| ### Added |
| |
| - Propagate trace subscriber in the runtime ([#966]). |
| |
| [#966]: https://github.com/tokio-rs/tokio/pull/966 |
| |
| # 0.1.16 (March 1, 2019) |
| |
| ### Fixed |
| |
| - async-await: track latest nightly changes ([#940]). |
| |
| ### Added |
| |
| - `sync::Watch`, a single value broadcast channel ([#922]). |
| - Async equivalent of read / write file helpers being added to `std` ([#896]). |
| |
| [#896]: https://github.com/tokio-rs/tokio/pull/896 |
| [#922]: https://github.com/tokio-rs/tokio/pull/922 |
| [#940]: https://github.com/tokio-rs/tokio/pull/940 |
| |
| # 0.1.15 (January 24, 2019) |
| |
| ### Added |
| |
| - Re-export tokio-sync APIs ([#839]). |
| - Stream enumerate combinator ([#832]). |
| |
| [#832]: https://github.com/tokio-rs/tokio/pull/832 |
| [#839]: https://github.com/tokio-rs/tokio/pull/839 |
| |
| # 0.1.14 (January 6, 2019) |
| |
| - Use feature flags to break up the crate, allowing users to pick & choose |
| components ([#808]). |
| - Export `UnixDatagram` and `UnixDatagramFramed` ([#772]). |
| |
| [#772]: https://github.com/tokio-rs/tokio/pull/772 |
| [#808]: https://github.com/tokio-rs/tokio/pull/808 |
| |
| # 0.1.13 (November 21, 2018) |
| |
| - Fix `Runtime::reactor()` when no tasks are spawned ([#721]). |
| - `runtime::Builder` no longer uses deprecated methods ([#749]). |
| - Provide `after_start` and `before_stop` configuration settings for |
| `Runtime` ([#756]). |
| - Implement throttle stream combinator ([#736]). |
| |
| [#721]: https://github.com/tokio-rs/tokio/pull/721 |
| [#736]: https://github.com/tokio-rs/tokio/pull/736 |
| [#749]: https://github.com/tokio-rs/tokio/pull/749 |
| [#756]: https://github.com/tokio-rs/tokio/pull/756 |
| |
| # 0.1.12 (October 23, 2018) |
| |
| - runtime: expose `keep_alive` on runtime builder ([#676]). |
| - runtime: create a reactor per worker thread ([#660]). |
| - codec: fix panic in `LengthDelimitedCodec` ([#682]). |
| - io: re-export `tokio_io::io::read` function ([#689]). |
| - runtime: check for executor re-entry in more places ([#708]). |
| |
| [#660]: https://github.com/tokio-rs/tokio/pull/660 |
| [#676]: https://github.com/tokio-rs/tokio/pull/676 |
| [#682]: https://github.com/tokio-rs/tokio/pull/682 |
| [#689]: https://github.com/tokio-rs/tokio/pull/689 |
| [#708]: https://github.com/tokio-rs/tokio/pull/708 |
| |
| # 0.1.11 (September 28, 2018) |
| |
| - Fix `tokio-async-await` dependency ([#675]). |
| |
| [#675]: https://github.com/tokio-rs/tokio/pull/675 |
| |
| # 0.1.10 (September 27, 2018) |
| |
| - Fix minimal versions |
| |
| # 0.1.9 (September 27, 2018) |
| |
| - Experimental async/await improvements ([#661]). |
| - Re-export `TaskExecutor` from `tokio-current-thread` ([#652]). |
| - Improve `Runtime` builder API ([#645]). |
| - `tokio::run` panics when called from the context of an executor |
| ([#646]). |
| - Introduce `StreamExt` with a `timeout` helper ([#573]). |
| - Move `length_delimited` into `tokio` ([#575]). |
| - Re-organize `tokio::net` module ([#548]). |
| - Re-export `tokio-current-thread::spawn` in current_thread runtime |
| ([#579]). |
| |
| [#548]: https://github.com/tokio-rs/tokio/pull/548 |
| [#573]: https://github.com/tokio-rs/tokio/pull/573 |
| [#575]: https://github.com/tokio-rs/tokio/pull/575 |
| [#579]: https://github.com/tokio-rs/tokio/pull/579 |
| [#645]: https://github.com/tokio-rs/tokio/pull/645 |
| [#646]: https://github.com/tokio-rs/tokio/pull/646 |
| [#652]: https://github.com/tokio-rs/tokio/pull/652 |
| [#661]: https://github.com/tokio-rs/tokio/pull/661 |
| |
| # 0.1.8 (August 23, 2018) |
| |
| - Extract tokio::executor::current_thread to a sub crate ([#370]) |
| - Add `Runtime::block_on` ([#398]) |
| - Add `runtime::current_thread::block_on_all` ([#477]) |
| - Misc documentation improvements ([#450]) |
| - Implement `std::error::Error` for error types ([#501]) |
| |
| [#370]: https://github.com/tokio-rs/tokio/pull/370 |
| [#398]: https://github.com/tokio-rs/tokio/pull/398 |
| [#450]: https://github.com/tokio-rs/tokio/pull/450 |
| [#477]: https://github.com/tokio-rs/tokio/pull/477 |
| [#501]: https://github.com/tokio-rs/tokio/pull/501 |
| |
| # 0.1.7 (June 6, 2018) |
| |
| - Add `Runtime::block_on` for concurrent runtime ([#391]). |
| - Provide handle to `current_thread::Runtime` that allows spawning tasks from |
| other threads ([#340]). |
| - Provide `clock::now()`, a configurable source of time ([#381]). |
| |
| [#340]: https://github.com/tokio-rs/tokio/pull/340 |
| [#381]: https://github.com/tokio-rs/tokio/pull/381 |
| [#391]: https://github.com/tokio-rs/tokio/pull/391 |
| |
| # 0.1.6 (May 2, 2018) |
| |
| - Add asynchronous filesystem APIs ([#323]). |
| - Add "current thread" runtime variant ([#308]). |
| - `CurrentThread`: Expose inner `Park` instance. |
| - Improve fairness of `CurrentThread` executor ([#313]). |
| |
| [#308]: https://github.com/tokio-rs/tokio/pull/308 |
| [#313]: https://github.com/tokio-rs/tokio/pull/313 |
| [#323]: https://github.com/tokio-rs/tokio/pull/323 |
| |
| # 0.1.5 (March 30, 2018) |
| |
| - Provide timer API ([#266]) |
| |
| [#266]: https://github.com/tokio-rs/tokio/pull/266 |
| |
| # 0.1.4 (March 22, 2018) |
| |
| - Fix build on FreeBSD ([#218]) |
| - Shutdown the Runtime when the handle is dropped ([#214]) |
| - Set Runtime thread name prefix for worker threads ([#232]) |
| - Add builder for Runtime ([#234]) |
| - Extract TCP and UDP types into separate crates ([#224]) |
| - Optionally support futures 0.2. |
| |
| [#214]: https://github.com/tokio-rs/tokio/pull/214 |
| [#218]: https://github.com/tokio-rs/tokio/pull/218 |
| [#224]: https://github.com/tokio-rs/tokio/pull/224 |
| [#232]: https://github.com/tokio-rs/tokio/pull/232 |
| [#234]: https://github.com/tokio-rs/tokio/pull/234 |
| |
| # 0.1.3 (March 09, 2018) |
| |
| - Fix `CurrentThread::turn` to block on idle ([#212]). |
| |
| [#212]: https://github.com/tokio-rs/tokio/pull/212 |
| |
| # 0.1.2 (March 09, 2018) |
| |
| - Introduce Tokio Runtime ([#141]) |
| - Provide `CurrentThread` for more flexible usage of current thread executor ([#141]). |
| - Add Lio for platforms that support it ([#142]). |
| - I/O resources now lazily bind to the reactor ([#160]). |
| - Extract Reactor to dedicated crate ([#169]) |
| - Add facade to sub crates and add prelude ([#166]). |
| - Switch TCP/UDP fns to poll\_ -> Poll<...> style ([#175]) |
| |
| [#141]: https://github.com/tokio-rs/tokio/pull/141 |
| [#142]: https://github.com/tokio-rs/tokio/pull/142 |
| [#160]: https://github.com/tokio-rs/tokio/pull/160 |
| [#166]: https://github.com/tokio-rs/tokio/pull/166 |
| [#169]: https://github.com/tokio-rs/tokio/pull/169 |
| [#175]: https://github.com/tokio-rs/tokio/pull/175 |
| |
| # 0.1.1 (February 09, 2018) |
| |
| - Doc fixes |
| |
| # 0.1.0 (February 07, 2018) |
| |
| - Initial crate released based on [RFC](https://github.com/tokio-rs/tokio-rfcs/pull/3). |