Re: select() efficiency / epoll

Willy Tarreau
2005-08-23T19:46:04Z

On Tue, Aug 23, 2005 at 06:24:42AM -0500, Davy Durham wrote:
> That's probably a good idea. Where would I find out what other projects
> use it?

I use it in my load-balancer (haproxy), and it could somewhat match your
needs, because I ported the select()-based earlier version to epoll() with
the smallest possible changes. Indeed, the new epoll() loop still uses the
FD_ISSET() to determine what to do with epoll_ctl(). If you have changed
your code to use select(), you may find similarities. But I want to tell
you from now that my code is NOT multi-threaded. It could be a bug in the
epoll implementation, because I don't think that there are so many
applications using epoll on MT models. Bert says that the epoll implementation
is heavily benchmarked, which is true, but which does not guarantee that it
is tested under every condition.

You can download it from there :

http://w.ods.org/tools/haproxy/src/devel/

Use version 1.2.6. I added epoll in 1.2.5, so the diff between 1.2.4 and
1.2.5 could help you too.

Good luck !
Willy