commit 3e68db02c45ea06c3f20854df1f76894424d4357
parent 1280de42a41ccf7ae398cc86529c880455e9c5d1
Author: Nick Mathewson <nickm@torproject.org>
Date: Thu, 3 Aug 2017 09:07:28 -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.
Diffstat:
2 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/changes/bug23081 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
@@ -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();
}