Merge #12172: Bugfix: RPC: savemempool: Don't save until LoadMempool() is finished

cb1e319 Bugfix: RPC: savemempool: Don't save until LoadMempool() is finished (Jorge Timón)

Pull request description:

  Fixes https://github.com/bitcoin/bitcoin/issues/12142

  The tests are a little bit slow, mempool_persist.py goes from about 20 s to about 120 s in my hardware.
  Perhaps there's a better way to test this.

Tree-SHA512: 9e6c24b32a9cf3774e8f0bd81c035b0deb53fba5ac3eb2532d85900579d21cef8a1135b75a4fa0a9d883e3822eb35e7d4b47a0838abf99789039205041962629
This commit is contained in:
Wladimir J. van der Laan
2018-03-30 00:25:43 +02:00
4 changed files with 9 additions and 4 deletions

View File

@@ -115,7 +115,6 @@ static const char* FEE_ESTIMATES_FILENAME="fee_estimates.dat";
//
std::atomic<bool> fRequestShutdown(false);
std::atomic<bool> fDumpMempoolLater(false);
void StartShutdown()
{
@@ -205,7 +204,7 @@ void Shutdown()
threadGroup.interrupt_all();
threadGroup.join_all();
if (fDumpMempoolLater && gArgs.GetArg("-persistmempool", DEFAULT_PERSIST_MEMPOOL)) {
if (g_is_mempool_loaded && gArgs.GetArg("-persistmempool", DEFAULT_PERSIST_MEMPOOL)) {
DumpMempool();
}
@@ -684,8 +683,8 @@ void ThreadImport(std::vector<fs::path> vImportFiles)
} // End scope of CImportingNow
if (gArgs.GetArg("-persistmempool", DEFAULT_PERSIST_MEMPOOL)) {
LoadMempool();
fDumpMempoolLater = !fRequestShutdown;
}
g_is_mempool_loaded = !fRequestShutdown;
}
/** Sanity checks