NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #459 most downloaded on crates.io
Unix signal handling
Last release 3 days ago
04 Oct 2026
Release timing varies
gaps range from 2 weeks to 1.8 years
Most releases are documented
notes for 42 of 47 stable releases
Nothing withdrawn
no release was ever pulled
8 years old
47 releases · first in 2018
pipe::register_raw now really sets close-on-exec (FD_CLOEXEC) on the file descriptor, for both pipes and sockets (#206).
pipe::register_raw now really sets close-on-exec (FD_CLOEXEC) on the file descriptor, for
both pipes and sockets (#206).sigemptyset/sigaddset fallback, which panicked in
emulate_default_handler (#207). Android below API 21 is no longer supported.Documentation about SIGBUS (#204).
One column per quarter.
Don't exclude .c files from release package.
Fix double-close on pipe unregister (#200).
Version 0.4.1 (don't pin dep versions)
Version 0.4.1 (don't pin dep versions)
Not bumping the async crates - they use it, but they don't expose the changed API.
Not bumping the async crates - they use it, but they don't expose the
changed API.
low_level::pipe to look OwnedFd instead of IntoRawFd, to
enforce ownership of the file descriptor (#196).Nothing published for this version
Fix race condition leading into a panic in SignalsInfo::forever (#148).
Fix compilation on OpenBSD (#147).
Nothing published for this version
Added the SIGINFO signal (where available).
* Add haiku support.
Fix accidentally broken windows build.
Provide fallback sigaddset, sigemptyset on certain androids, as they are missing them.
* Doc link fixes.
Deliver SIGCHLD even on stop/continue.
* Fix docs.rs build.
Unmask a signal in default emulation if it is termination.
* Fix the labels on docs.rs :-|.
Doc: include the features & these little labels inside docs.
Fix feature dependencies (iterator depends on channel).
iterator depends on channel).low_level::emulate_default_handler to emulate whatever default handler would do.
low_level::emulate_default_handler to emulate whatever default handler would
do.low_level::signal_name to look up human readable name.Origin's debug output now contains the human readable name of the
signal.Allow extracting Origin from the raw siginfo_t structure by hand, without needing an iterator.
siginfo_t structure by hand, without
needing an iterator.WithRawSiginfo extractor (to get hands on the raw siginfo_t).Use caret dependencies where appropriate (to allow upgrades on signal-hook-registry).
The cleanup module is gone, it was not a good API. Replaced by conditional termination in flag.
cleanup module is gone, it was not a good API. Replaced by conditional
termination in flag.low_level submodule, as they are
considered building blocks, not for direct use (register, pipe,
channel).consts), together with few
more constants, to not clutter the root.Nothing published for this version
Extractor for the origin of a signal (PID, UID, what caused it).
Allow turning the iterator module off (the iterator feature, part of default features). This would allow compiling the crate on 1.31.0.
iterator feature, part of default
features). This would allow compiling the crate on 1.31.0.Bump minimal rustc version to 1.36.0 (signal-hook-registry still builds with 1.26.0).
pipe::register_raw now takes ownership and tries to use send
first, falls back to O_NONBLOCK and write on failure.signal-hook crate.Iterator are now exposed in
signal_hook::iterator::backend, to support the async crates.Nothing published for this version
Fix possible blocking in signal handler registered by Signals.
Signals.Make Signals work in edge-triggered mode in mio too, by always draining everything from the socket. Needed, because mio 0.7 doesn't have level-trigger
Signals work in edge-triggered mode in mio too, by always draining
everything from the socket. Needed, because mio 0.7 doesn't have
level-triggered any more.mio-0_7-support feature for use with mio 0.7.0+.
mio-0_7-support feature for use with mio 0.7.0+.* Some doc clarifications.
cleanup module to register resetting signals to default.
cleanup module to register resetting signals to default.Fix registering pipes as well as sockets into the pipe module (#27).
Fix busy loop in Iterator::forever when the mio-support feature is enabled (#16).
Nothing published for this version
The Signals iterator can now be closed (from another instance or thread), which can be used to shut down the thread handling signals from the main thr
Signals iterator can now be closed (from another instance or thread),
which can be used to shut down the thread handling signals from the main
thread.The Signals iterator allows adding signals after creation.
Signals iterator allows adding signals after creation.Signals registrations could be unregirestered too soon if
the Signals was cloned previously.The internally used ArcSwap thing doesn't block other ArcSwaps now (has independent generation lock).
Re-exported signal constants, so users no longer need libc.
Compilation fix for android-aarch64
* Tokio support. * Mio support. * Dependency updates.
* Dependency updates.
Get rid of catch_unwind inside the signal handler.
catch_unwind inside the signal handler.* Initial basic implementation. * Flag helpers. * Pipe helpers. * High-level iterator helper.
Your coding agent can read these notes before it upgrades. Set up the MCP server →