Periodic events should wake up less often
Right now, we have a few periodic events that probe for some condition once a second. That's not great! Instead we should have them run as needed based on a real scheduler of some kind, possibly with a mechanism to run them ahead-of-time.
For any periodic events that can't be made to run less often, we need to use something like Tor's Dormant mode to disable them when we're offline (see #71).
Subtasks.
-
Generic "periodic event that can be turned on and off" implementation. (est 16h) -
continually_expire_channels
(est 2h) -
continually_launch_timeout_testing_circuits
(est 2h) -
continually_build_preemptive_circuits
(est 8h) -
circmgr::mgr::spawn_expiration_task
(est 2h) -
update_persistent_state
(est 2h) -
Directory updater task. (est 8h)
Edited by Nick Mathewson