[tor-commits] [tor/maint-0.3.0] In ntmain, call set_main_thread() before running the loop.

nickm at torproject.org nickm at torproject.org
Mon Oct 23 12:48:05 UTC 2017


commit 3e68db02c45ea06c3f20854df1f76894424d4357
Author: Nick Mathewson <nickm at torproject.org>
Date:   Thu Aug 3 09:07:28 2017 -0400

    In ntmain, call set_main_thread() before running the loop.
    
    Patch from Vort; fixes bug 23081; bugfix on fd992deeea76972 in
    0.2.1.16-rc when set_main_thread() was introduced.
    
    See the changes file for a list of all the symptoms this bug has
    been causing when running Tor as a Windows Service.
---
 changes/bug23081 | 8 ++++++++
 src/or/ntmain.c  | 1 +
 2 files changed, 9 insertions(+)

diff --git a/changes/bug23081 b/changes/bug23081
new file mode 100644
index 000000000..76c4e3097
--- /dev/null
+++ b/changes/bug23081
@@ -0,0 +1,8 @@
+  o Minor bugfixes (Windows service):
+    - When running as a Windows service, set the ID of the main thread
+      correctly. Failure to do so made us fail to send log messages
+      to the controller in 0.2.1.16-rc, slowed down controller
+      event delivery in 0.2.7.3-rc and later, and crash with an assertion
+      failure in 0.3.1.1-alpha. Fixes bug 23081; bugfix on 0.2.1.6-alpha.
+      Patch and diagnosis from "Vort".
+
diff --git a/src/or/ntmain.c b/src/or/ntmain.c
index e84831404..ddbe7a3e4 100644
--- a/src/or/ntmain.c
+++ b/src/or/ntmain.c
@@ -281,6 +281,7 @@ nt_service_body(int argc, char **argv)
    * event loop */
   service_status.dwCurrentState = SERVICE_RUNNING;
   service_fns.SetServiceStatus_fn(hStatus, &service_status);
+  set_main_thread();
   do_main_loop();
   tor_cleanup();
 }





More information about the tor-commits mailing list