Fined-grain timer implementation to support per-connection or per-circuit timers
With #16861 (moved), we hit a situation where having tens of thousands of concurrent timers would be desirable. Unfortunately, libevent's default timer implementation (a min-heap) is not so great for that. I have a patch in to make libevent use a faster backend, but since libevent uptake can be slow we might want to do this in Tor too.
Here's one implementation I'm liking these days: http://www.25thandclement.com/~william/projects/timeout.c.html
I have some patches to it here: https://github.com/nmathewson/timeout