mainloop: Disable periodic events before a destroy

When tearing down all periodic events during shutdown, disable them first so
their enable flag is updated.

This allows the tor_api.h to relaunch tor properly after a clean shutdown.

Fixes #32058

Signed-off-by: David Goulet <dgoulet@torproject.org>
This commit is contained in:
David Goulet 2019-10-15 13:33:48 -04:00 committed by Nick Mathewson
parent 7b9cb4c47b
commit 4a8d491322
2 changed files with 10 additions and 0 deletions

5
changes/ticket32058 Normal file
View File

@ -0,0 +1,5 @@
o Minor bugfixes (mainloop, periodic events):
- Periodic events enabled flag was not unset properly when shutting down tor
cleanly. This had the side effect to not re-enable periodic events when
tor_api.h is used to relaunch tor after a shutdown. Fixes bug 32058;
bugfix on 0.3.3.1-alpha.

View File

@ -137,6 +137,11 @@ periodic_event_destroy(periodic_event_item_t *event)
{
if (!event)
return;
/* First disable the event so we first cancel the event and set its enabled
* flag properly. */
periodic_event_disable(event);
mainloop_event_free(event->ev);
event->last_action_time = 0;
}