Curious about network connection events

Andrew R. Reiter arr at
Wed Mar 17 17:03:23 UTC 2004

On Tue, 16 Mar 2004, Roger Dingledine wrote:

:On Tue, Mar 16, 2004 at 07:34:00PM -0500, Andrew R. Reiter wrote:
:> I am curious about if there has been any thought to expanding the
:> connection interface to not just use poll(2) or select(2) but allow for
:> more recent APIs such as kqueue in BSD and sysevq in linux.  Doing this by
:> a generic interface such as Libevent from Niels Provos might be an easy
:> way to do this... perhaps (not saying it's the right way).
:Right now we use poll (or if poll is not available or buggy, we have
:our own simple poll wrapper that uses select), and it works fine for us.
:I anticipate that if we start getting 1000 or more sockets we care
:about, then we will want something better. I hear epoll is an easy
:drop-in replacement, though not available on some backward systems. ;)
:But really, when we get to that point, we'll figure out what we need and
:what's available at that point.

Oops! I meant epoll not sysevq when I referred to linux; my mistake.

:Consider 100 servers and 10000 users: each server is connected to the
:other 100, and has another 100 users clustered around him. So I don't
:think poll is a bottleneck for us right now, and won't be for the next
:quite a while.

Ok, gotcha.  I am new to the 2nd gen. OR work so please excuse my
ignorance.  I will try to familiarize myself more ;)

:But that said, if you wanted to refactor main.c so it's more flexible (but
:still clean) with its event handling, we'd probably accept the patch. :)

*nod*; I'll look at what it'll take and you'll hear from me if I have it


Andrew R. Reiter
arr at
arr at

More information about the tor-dev mailing list