[Libevent-users] How does libevent deal with more events than a particular syscall can handle?

Roger Clark rogerclark at gmail.com
Sat Nov 18 19:46:14 EST 2006


Has there ever been any mention of using IOCP or something on Windows?
The Win32 implementation currently uses select() and still imposes the
limit, which was mainly why I was asking.

Furthermore, does there appear to be any activity on this project
regarding Windows at all?

--
Roger Clark
rogerclark at gmail.com

On 11/18/06, Steven Grimm <sgrimm at facebook.com> wrote:
> It avoids using select() unless there's absolutely no other choice, in
> part because of the artificial limits of select() but mostly because
> select() is inefficient for large numbers of monitored file descriptors.
>
> Most of the point of libevent is that it's a generic wrapper around
> OS-specific event notification mechanisms that don't have the kinds of
> problems select() has. It will use the best available mechanism on
> whatever platform you're on. I can't say anything about Win32 in
> particular, but most platforms at the very least support poll(), which
> shares some of select()'s efficiency problems but at least doesn't have
> a small compile-time limit on the number of pollable file descriptors.
> All the significant modern UNIX-ish platforms support much better
> mechanisms than poll(): kqueue on BSD, event ports on Solaris, epoll on
> Linux, etc. If you're coding to libevent's API you don't have to worry
> about the details of the underlying notification mechanism.
>
> -Steve


More information about the Libevent-users mailing list