From 3e68db02c45ea06c3f20854df1f76894424d4357 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Thu, 3 Aug 2017 09:07:28 -0400 Subject: [PATCH] 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(+) create mode 100644 changes/bug23081 diff --git a/changes/bug23081 b/changes/bug23081 new file mode 100644 index 0000000000..76c4e30971 --- /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 e848314043..ddbe7a3e44 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(); }