commit 3e68db02c45ea06c3f20854df1f76894424d4357
Author: Nick Mathewson <nickm(a)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();
}