Files
tokio/tokio-signal/CHANGELOG.md
T
Ivan Petkov 5a5dde70b3 signal: miscellaneous tweaks and improvements (#751)
* Minimize allocation needed for channels

* Use a newtype for signal ids

* We can just cast the raw pointer to a `usize` and still perform a
simple identity check, without incurring any implications of storing a
raw pointer (e.g. previously Signal was !Sync and had an unsafe impl of
Send, and now it is naturally Sync+Send)

* Broadcast with `try_send` instead of `start_send`

The `Stream::start_send` method uses backpressure and schedules the
current task to be notified whenever the channel has additional room,
which means we'll generate a lot of unnecessary wakeups whenever a
channel gets full

By changing to `try_send` and handling any errors, we ensure the
Driver's task won't get woken up when a Signal finally consumes its
notification, since we're coalescing things anyway
2018-11-16 14:56:43 -08:00

1008 B

Unreleased

Changed

  • unix::Signal now implements Sync

Fixes

  • unix::Signal now avoids extraneous wakeups generated as a result of dropping other instances

0.2.6 - (October 26, 2018)

Changed

  • Use the signal-hook crate for managing signal registrations

0.2.5 - (September 29, 2018)

Fixes

  • Fix a possible starvation when polling multiple Signal instances outside of a tokio reactor (e.g. by using Future::wait)

0.2.4 - (August 25, 2018)

Fixes

  • Actually make unix::bsd public

0.2.3 - (August 25, 2018)

Features

  • Exposes SIGINFO on BSD-based operating systems.

0.2.2 - (August 14, 2018)

Fixes

  • Fix starvation of Signals whenever a Signal instance is dropped
  • Fix starvation of individual Signals based on their creation order

0.2.1 - (May 27, 2018)

Fixes

  • Bump minimum supported version of mio to 0.6.14

0.2.0 - (May 7, 2018)

Features

  • Uses tokio instead of tokio_core
  • Supports all 33 signals on FreeBSD