]> Git Repo - VerusCoin.git/commit
http: speed up shutdown
authorWladimir J. van der Laan <[email protected]>
Wed, 11 Nov 2015 16:34:10 +0000 (17:34 +0100)
committerJason Davies <[email protected]>
Tue, 1 Aug 2017 19:24:27 +0000 (20:24 +0100)
commitc7f77e28f0e4e8cb4f5ca6ba3877ab75bb983930
tree144b8f1f663ec877444609b6047dd3adc521144f
parent2abe8ef721ea7bdff5d908f5ee3a9bc34d54a1c8
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.

Zcash: cherry-picked from commit a264c32e3321ae909ca59cb8ce8bf5d812dbc4e1
src/httpserver.cpp
src/httpserver.h
src/init.cpp
This page took 0.026042 seconds and 4 git commands to generate.