[or-cvs] Make Tor use Niels Provos"s libevent instead of it"s current

Nick Mathewson nickm at seul.org
Wed Jan 12 06:42:33 UTC 2005


Update of /home/or/cvsroot/tor/doc
In directory moria.mit.edu:/tmp/cvs-serv9851/doc

Modified Files:
	TODO 
Log Message:
Make Tor use Niels Provos's libevent instead of it's current
poll-but-sometimes-select mess.  This will let us use faster async cores
(like epoll, kpoll, and /dev/poll), and hopefully work better on Windows
too.

There are some fairly nasty changes to main.c here; this will almost
certainly break something.  But hey, that's what alphas are for.



Index: TODO
===================================================================
RCS file: /home/or/cvsroot/tor/doc/TODO,v
retrieving revision 1.248
retrieving revision 1.249
diff -u -d -r1.248 -r1.249
--- TODO	5 Jan 2005 19:45:28 -0000	1.248
+++ TODO	12 Jan 2005 06:42:31 -0000	1.249
@@ -70,7 +70,7 @@
 
    - Windows
 N    - Make millisecond accuracy work on win32
-     - Switch to WSA*Event code as a better poll replacement.  Or maybe just
+     X Switch to WSA*Event code as a better poll replacement.  Or maybe just
        do libevent?
 
    - Code cleanup
@@ -101,10 +101,24 @@
      - Limit number of circuits that we preemptively generate based on past
        behavior; use same limits in circuit_expire_old_circuits().
      - Write limiting; configurable token buckets.
-     - Switch to libevent?  Evaluate it first.
      - Make it harder to circumvent bandwidth caps: look at number of bytes
        sent across sockets, not number sent inside TLS stream.
 
+     . Switch to libevent
+       o Evaluate libevent
+       o Convert socket handling
+       o Convert signal handling
+       o Convert timers
+       o Update configure.in
+       o Remove fakepoll
+       - Hold-open-until-flushed now works by accident; it should work by
+         design.
+       - The logic for reading from TLS sockets is likely to overrun the
+         bandwidth buckets under heavy load.  (Really, the logic was
+         never right in the first place.)  Also, we should audit all users
+         of get_pending_bytes().
+       - Make sure it works on more platforms.
+       - Find a way to make sure we have libevent 1.0 or later.
 
    - QOI
      - Let more config options (e.g. ORPort) change dynamically.



More information about the tor-commits mailing list