Allow shutdown during LoadMempool, dump only when necessary

This commit is contained in:
Jonas Schnelli 2016-12-22 20:11:26 +01:00
parent 041331e1da
commit 9479f8dfcf
No known key found for this signature in database
GPG Key ID: 29D4BCB6416F53EC
2 changed files with 6 additions and 1 deletions

View File

@ -130,6 +130,7 @@ static const char* FEE_ESTIMATES_FILENAME="fee_estimates.dat";
// //
std::atomic<bool> fRequestShutdown(false); std::atomic<bool> fRequestShutdown(false);
std::atomic<bool> fDumpMempoolLater(false);
void StartShutdown() void StartShutdown()
{ {
@ -209,6 +210,7 @@ void Shutdown()
StopTorControl(); StopTorControl();
UnregisterNodeSignals(GetNodeSignals()); UnregisterNodeSignals(GetNodeSignals());
if (fDumpMempoolLater)
DumpMempool(); DumpMempool();
if (fFeeEstimatesInitialized) if (fFeeEstimatesInitialized)
@ -667,6 +669,7 @@ void ThreadImport(std::vector<boost::filesystem::path> vImportFiles)
} }
} // End scope of CImportingNow } // End scope of CImportingNow
LoadMempool(); LoadMempool();
fDumpMempoolLater = !fRequestShutdown;
} }
/** Sanity checks /** Sanity checks

View File

@ -4076,6 +4076,8 @@ bool LoadMempool(void)
} else { } else {
++skipped; ++skipped;
} }
if (ShutdownRequested())
return false;
} }
std::map<uint256, CAmount> mapDeltas; std::map<uint256, CAmount> mapDeltas;
file >> mapDeltas; file >> mapDeltas;