Module nix::sys::signalfd [] [src]

Interface for the signalfd syscall.

Signal discarding

When a signal can't be delivered to a process (or thread), it will become a pending signal. Failure to deliver could happen if the signal is blocked by every thread in the process or if the signal handler is still handling a previous signal.

If a signal is sent to a process (or thread) that already has a pending signal of the same type, it will be discarded. This means that if signals of the same type are received faster than they are processed, some of those signals will be dropped. Because of this limitation, signalfd in itself cannot be used for reliable communication between processes or threads.

Once the signal is unblocked, or the signal handler is finished, and a signal is still pending (ie. not consumed from a signalfd) it will be delivered to the signal handler.

Please note that signal discarding is not specific to signalfd, but also happens with regular signal handlers.

Reexports

pub use sys::signal::{self, SigSet};

Structs

SfdFlags
SignalFd

A helper struct for creating, reading and closing a signalfd instance.

siginfo

Constants

CREATE_NEW_FD
SFD_CLOEXEC
SFD_NONBLOCK
SIGINFO_PADDING
SIGINFO_SIZE

Functions

signalfd

Creates a new file descriptor for reading signals.