On 12/13/2009 12:52 AM, Vladimir Sedach wrote:
As for the rest, I'm not inclined to merge them because ultimately I want the muxer to be callback-only and not to expose the details of the OS-specific mechanisms, which I consider to be only internals.
I don't mind the interface being based on callbacks instead of HARVEST-EVENTS, but I also don't see how the current interface is simpler or offers more than just exposing (UN)MONITOR-FD/UPDATE-FD/HARVEST-EVENTS and a generic mechanism to make a MULTIPLEXER. I don't get event-loop.lisp or why I would need it, and I definitely don't want synthetic timers in my networking code.
It hides the fact that with epoll() you need to set/unset FD flags, while with kqueue() you add/remove, and select()/poll() have not state whatsoever. Furthermore, while for the moment only FD events and timers are supported, I'm planning to add at least two more: signals and file change notification.
As for the timers, you're not forced to use them, although when working with the non-blocking sockets IMO they're essential.