[tor-commits] [tor/maint-0.4.2] mainloop: Disable periodic events before a destroy

teor at torproject.org teor at torproject.org
Mon Oct 21 03:29:44 UTC 2019


commit 4a8d4913227ea1d6b9302cda4703516595a3c1b5
Author: David Goulet <dgoulet at torproject.org>
Date:   Tue Oct 15 13:33:48 2019 -0400

    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 at torproject.org>
---
 changes/ticket32058          | 5 +++++
 src/core/mainloop/periodic.c | 5 +++++
 2 files changed, 10 insertions(+)

diff --git a/changes/ticket32058 b/changes/ticket32058
new file mode 100644
index 000000000..b40bcda41
--- /dev/null
+++ b/changes/ticket32058
@@ -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.
diff --git a/src/core/mainloop/periodic.c b/src/core/mainloop/periodic.c
index 34690c54d..2651bbbc8 100644
--- a/src/core/mainloop/periodic.c
+++ b/src/core/mainloop/periodic.c
@@ -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;
 }





More information about the tor-commits mailing list