[libdispatch-dev] [PATCH] use libkqueue if sys/event.h is missing
mark at heily.com
Mon Nov 16 21:41:32 PST 2009
Joakim Johansson wrote:
> Of course, I'd like to disable this check on Solaris completely, as the
> current plan is to use native event ports rather than libkqueue, but that
> is for a later patch.
I do plan to add Solaris event port support to libkqueue once the Linux
backend is complete and the internal API is stabilized. I checked the
port_create(3C) manpage in Solaris 10 and OpenSolaris, and did not see any
way to wait for signals like in EVFILT_SIGNAL. There is no equivalent to
EVFILT_PROC that allows you to receive events when a child process calls
exit(2). There is also no equivalent to EVFILT_VNODE in Solaris 10, although
OpenSolaris has added the PORT_SOURCE_FILE functionality.
On the other hand, the event port interface is very similar to kqueue(2) and
kevent(2) so it should be very easy to emulate these system calls under
Solaris. I have already started work on a generic POSIX backend for
libkqueue to fill in the gaps when the host kernel does not support a
particular event source. The Linux backend already falls back to using this
generic POSIX backend to emulate the EVFILT_PROC filter, since there is no
event-based alternative to the wait(2) family of system calls on Linux.
 Solaris 10 port_create(3C)
 OpenSolaris port_create(3C)
More information about the libdispatch-dev