diff options
| author | Matt Corallo <[email protected]> | 2017-07-23 13:29:06 -0400 |
|---|---|---|
| committer | Matt Corallo <[email protected]> | 2017-08-01 16:35:02 -0400 |
| commit | efac91e65452dd89a9b891e79bdd191208d2b44d (patch) | |
| tree | e630961bac6c0763c637faf915935fd0d0274462 /src/httpserver.cpp | |
| parent | Merge #10788: [RPC] Fix addwitnessaddress by replacing ismine with producesig... (diff) | |
| download | discoin-efac91e65452dd89a9b891e79bdd191208d2b44d.tar.xz discoin-efac91e65452dd89a9b891e79bdd191208d2b44d.zip | |
Always wait for threadGroup to exit in bitcoind shutdown
This resolves a possible-assert-on-shutdown race introduced in
1f668b646806f94acd851acdbd9939c24e0492d3 when early shutdown
occurs.
Previously this was not done to avoid any cases where the
threadGroup might not exit due to a blocking thread, but at this
point the threadGroup isn't used all that much, plus Qt already
does this, and its good to keep their init/shutdown consistent.
For those curious, the threadGroup is only used in a few places:
* Its used to run the CCheckQueues in script validation, but these
use the boost mutex/condition variable primitives, so they
respect the interrupt pretty trivially.
* Its used for the import thread, which should exit rather quickly
as mostly it just calls LoadExternalBlockFile, which has an
interruption_point right before each block loaded.
* Its used in the scheduler thread, which is only used for:
* validationinterface has an effectively-dummy reference to it.
* wallet compaction, which should not last long
* addr/banlist dumping from CConnman, which should also be fast
Diffstat (limited to 'src/httpserver.cpp')
0 files changed, 0 insertions, 0 deletions