sigwait - differences between Linux & FreeBSD

Stephen Hocking stephen.hocking at
Thu Oct 8 00:53:22 UTC 2009

Hi all,

In my efforts to make the xrdp port more robust under FreeBSD, I have
discovered that sigwait (kind of an analogue to select(2), but for
signals rather than I/O) re-enables ignored signals in its list under
Linux, but not FreeBSD. The sesman daemon uses SIGCHLD to clean up
after a session has exited. Under Linux this works OK, under FreeSBD
it doesn't. I have worked around it in a very hackish manner (define a
dummy signal handler and enable it using signal, which means that the
sigwait call can then be unblocked by it), but am wondering if anyone
else has run across the same problem, and if so, if they fixed it in
an elegant manner. Also, does anyone know the correct semantics of
sigwait under this situation?


More information about the freebsd-ports mailing list