eve.core.kqueue.signals
kqueue-native signal handling via EVFILT_SIGNAL and pthread_sigmask.
Unlike Linux which requires signalfd, kqueue delivers signals directly through the kqueue via the EVFILT_SIGNAL filter. The signal number is the kevent ident field, so no separate file descriptor is needed. This module manages signal mask state and provides signal watcher operations for EventLoop. It isolates kqueue-specific pthread_sigmask logic.
struct SignalManager
Types 1
structSignalManager
Signal mask state manager for kqueue EventLoop.
Manages signal mask blocking and restoration using pthread_sigmask. On kqueue, signals are registered directly via EVFILT_SIGNAL — no separate signalfd handle is required. Works with EventLoop watcher slots to determine active signals.
Fields
bool _maskActivebool _hasSavedMasksigset_t _savedMaskMethods
bool hasSignalWatcher(Slot)(const(Slot)[] slots, Signal signal) static @safe nothrow @nogcCheck if a specific signal has an active watcher in the given slots.bool anySignalWatchers(Slot)(const(Slot)[] slots) static @safe nothrow @nogcCheck if any signal watchers exist in the given slots.int refreshSignalMask(Slot)(const(Slot)[] slots) @trusted nothrowRefresh the signal mask based on active signal watchers.int restoreSignalMask() @trusted nothrowRestore the original signal mask that was saved before any blocking.