[libdispatch-dev] libkqueue
Paolo Bonzini
bonzini at gnu.org
Sun Oct 18 08:54:35 PDT 2009
On 09/28/2009 05:11 AM, Kevin Van Vechten wrote:
> I might have to implement EVFILT_PROC using a helper thread.
For NOTE_EXIT only you can use a SIGCHLD signalfd.
For anything else you'd need to use ptrace, which is probably not a
great idea...
However, note that signalfd only works if you can guarantee that all
threads have blocked that signal. signalfd competes with
sigaction/sigwait rather than being lower priority; if a process signal
is given to another thread while you are reading on the signalfd for it,
you lose it.
"All" means that for example that you must block the signal before you
call pthread_create (and that's relatively fine) but also before you
call _any_ AIO function, because aio_init creates threads that you don't
know about and where the signal won't be blocked.
Paolo
More information about the libdispatch-dev
mailing list