aboutsummaryrefslogtreecommitdiff
path: root/src/httpserver.h
diff options
context:
space:
mode:
authorWladimir J. van der Laan <laanwj@gmail.com>2015-11-11 17:34:10 +0100
committerWladimir J. van der Laan <laanwj@gmail.com>2015-11-13 11:10:48 +0100
commita264c32e3321ae909ca59cb8ce8bf5d812dbc4e1 (patch)
tree2f934da3736223e127356a496b0bfb6fa4563fca /src/httpserver.h
parent3ac70609345a249a74fad61b70f93e8a19245011 (diff)
http: speed up shutdown
This continues/fixes #6719. `event_base_loopbreak` was not doing what I expected it to, at least in libevent 2.0.21. What I expected was that it sets a timeout, given that no other pending events it would exit in N seconds. However, what it does was delay the event loop exit with 10 seconds, even if nothing is pending. Solve it in a different way: give the event loop thread time to exit out of itself, and if it doesn't, send loopbreak. This speeds up the RPC tests a lot, each exit incurred a 10 second overhead, with this change there should be no shutdown overhead in the common case and up to two seconds if the event loop is blocking. As a bonus this breaks dependency on boost::thread_group, as the HTTP server minds its own offspring.
Diffstat (limited to 'src/httpserver.h')
-rw-r--r--src/httpserver.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/httpserver.h b/src/httpserver.h
index b377dc19fc..20a119cc5c 100644
--- a/src/httpserver.h
+++ b/src/httpserver.h
@@ -28,7 +28,7 @@ bool InitHTTPServer();
* This is separate from InitHTTPServer to give users race-condition-free time
* to register their handlers between InitHTTPServer and StartHTTPServer.
*/
-bool StartHTTPServer(boost::thread_group& threadGroup);
+bool StartHTTPServer();
/** Interrupt HTTP server threads */
void InterruptHTTPServer();
/** Stop HTTP server */