- signalfd() is a Linux specific api: SIGNALFD(2):
CONFORMING TO top signalfd() and signalfd4() are Linux-specific.
- FreeBSD and OSX and others can use the widely available kevent/kqueue api for a similar effect.
We let the kernel notify us via kevent() [1], if there is a SIGUSR1 or SIGUSR2, and then fetch the signal using sigwaitinfo() [2].
[1] https://www.freebsd.org/cgi/man.cgi?query=kqueue&sektion=2
[2] https://www.freebsd.org/cgi/man.cgi?query=sigwaitinfo&sektion=2
It seems to work just fine on FreeBSD.