]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
mainloop: Disable periodic events before a destroy
authorDavid Goulet <dgoulet@torproject.org>
Tue, 15 Oct 2019 17:33:48 +0000 (13:33 -0400)
committerNick Mathewson <nickm@torproject.org>
Thu, 17 Oct 2019 14:11:32 +0000 (10:11 -0400)
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>
changes/ticket32058 [new file with mode: 0644]
src/core/mainloop/periodic.c

diff --git a/changes/ticket32058 b/changes/ticket32058
new file mode 100644 (file)
index 0000000..b40bcda
--- /dev/null
@@ -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.
index 34690c54d962f1f20167e951f09fb30c1fdd58e6..2651bbbc89813c7126cf3aa7266a2956f8068f2c 100644 (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;
 }