Browse Source

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.
Nick Mathewson 6 years ago
parent
commit
3e68db02c4
2 changed files with 9 additions and 0 deletions
  1. 8 0
      changes/bug23081
  2. 1 0
      src/or/ntmain.c

+ 8 - 0
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".
+

+ 1 - 0
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();
 }