- Support for mio 1.0
- NQX support (experimental/not guaranteed to work) (#158)
- By disabling
SA_RESTART
on that platform, not supported there.
- By disabling
- Fix race condition leading into a panic in SignalsInfo::forever (#148).
- Fix compilation on OpenBSD (#147).
- AIX support (experimental/not guaranteed to work).
- Added the SIGINFO signal (where available).
- Support for mio 0.8
- Fix support for SignalsInfo with non-default info extractors.
- 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.
- The same fix, but for the 0.6 support 😇.
- Fix example: handle ErrorKind::Interrupted inside poll. It's very likely to happen, when we are waiting for signals there.
- Fix the labels on docs.rs :-|.
- Doc: include the features & these little labels inside docs.
- Dependency updates ‒ no longer depends on the whole async-std, but only on
some smaller dependencies of it (
async-io
,futures-lite
). This might make it work even outside of async-std context.
- Support for tokio 1.0.
- Fix feature dependencies (
iterator
depends onchannel
).
low_level::emulate_default_handler
to emulate whatever default handler would do.low_level::signal_name
to look up human readable name.- The
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. - Folding the signal-hook-sys inline (but still compiling C code only conditionally).
WithRawSiginfo
extractor (to get hands on the rawsiginfo_t
).- Bugfix: Don't leak on WithOrigin destruction.
- Use caret dependencies where appropriate (to allow upgrades on signal-hook-registry).
- No longer depends on
futures
.
- The
cleanup
module is gone, it was not a good API. Replaced by conditional termination inflag
. - Some abstractions/patterns are moved to
low_level
submodule, as they are considered building blocks, not for direct use (register
,pipe
,channel
). - The signal constants are moved to a submodule (
consts
), together with few more constants, to not clutter the root. - The forever iterator no longer consumes.
- The
unregister_signal
in is deprecated, without a replacement.
- Extractor for the origin of a signal (PID, UID, what caused it).
- Fixing some doc links on re-exports.
- Allow turning the iterator module off (the
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).
- (Breaking) Support for exfiltrators ‒ ability to return more than just the signal number from the iterator and streams. Nothing more is implemented yet, but the place to put it is reserved in the API.
- (Breaking)
pipe::register_raw
now takes ownership and tries to use send first, falls back toO_NONBLOCK
andwrite
on failure. - (Breaking) All async support is pulled out into separate crates, to decouple
from the async runtime release cycles on the main
signal-hook
crate. - Inner parts of the
Iterator
are now exposed insignal_hook::iterator::backend
, to support the async crates.
- Drop dependency on arc-swap (only very small subset used and arc-swap would like to drop that part anyway).
- Abort instead of panicking if the OS gives us NULL as siginfo (which is illegal). Panicking would be UB.
- Fix possible blocking in signal handler registered by
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-triggered any more.
mio-0_7-support
feature for use with mio 0.7.0+.- Bump minimal rustc version to 1.31.0 (signal-hook-registry can still build with 1.26.0).
- Some doc clarifications.
cleanup
module to register resetting signals to default.
unregister_signal
, to remove all hooks of one signal.
- Docs improvements.
- Fix registering pipes as well as sockets into the pipe module (#27).
- Update deps.
- Adding Windows support (thanks to @qnighy).
- Fix busy loop in Iterator::forever when the mio-support feature is enabled (#16).
- Include the registry files in the crates.io tarball.
- Split into backend signal-hook-registry and the frontend. The backend is much less likely to have breaking changes so it contains the things that can be in the application just once.
- 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 thread.
- The
Signals
iterator allows adding signals after creation. - Fixed a bug where
Signals
registrations could be unregirestered too soon if theSignals
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. - Link to the nix crate.
- Initial basic implementation.
- Flag helpers.
- Pipe helpers.
- High-level iterator helper.