In ntmain, call set_main_thread() before running the loop.

Patch from Vort; fixes bug 23081; bugfix on fd992deeea 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.
This commit is contained in:
Nick Mathewson 2017-08-03 09:07:28 -04:00
parent 1280de42a4
commit 3e68db02c4
2 changed files with 9 additions and 0 deletions

8
changes/bug23081 Normal file
View File

@ -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".

View File

@ -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();
}