main: Add mainloop callback event flags

Implement the ability to set flags per events which influences the set up of
the event.

This commit only adds one flag which is "need network" meaning that the event
is not enabled if tor has disabled the network or if hibernation mode.

Signed-off-by: David Goulet <dgoulet@torproject.org>
This commit is contained in:
David Goulet
2018-04-26 14:20:31 -04:00
committed by Nick Mathewson
parent 302908657f
commit 05d314f888
4 changed files with 73 additions and 31 deletions
+10
View File
@@ -0,0 +1,10 @@
o Major feature (main loop, CPU usage):
- Previously, tor would enable at startup all possible main loop event
regardless if it needed them. For instance, directory authorities
callbacks were fired up even for client only. We have now refactored this
whole interface to only enable the appropriate callbacks depending on what
are tor roles (client only, relay, hidden service, etc.). Furthermore,
these events now depend on DisableNetwork or the hibernation state in
order to enable them. This is a big step towards reducing client CPU usage
by reducing the amount of wake ups the daemon does. Closes ticket 25376
and 25762.