From 9479f8dfcf0533366ba81d191b507a0326df66db Mon Sep 17 00:00:00 2001 From: Jonas Schnelli Date: Thu, 22 Dec 2016 20:11:26 +0100 Subject: [PATCH] Allow shutdown during LoadMempool, dump only when necessary --- src/init.cpp | 5 ++++- src/validation.cpp | 2 ++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/init.cpp b/src/init.cpp index e642729a9..e239e0d30 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -130,6 +130,7 @@ static const char* FEE_ESTIMATES_FILENAME="fee_estimates.dat"; // std::atomic fRequestShutdown(false); +std::atomic fDumpMempoolLater(false); void StartShutdown() { @@ -209,7 +210,8 @@ void Shutdown() StopTorControl(); UnregisterNodeSignals(GetNodeSignals()); - DumpMempool(); + if (fDumpMempoolLater) + DumpMempool(); if (fFeeEstimatesInitialized) { @@ -667,6 +669,7 @@ void ThreadImport(std::vector vImportFiles) } } // End scope of CImportingNow LoadMempool(); + fDumpMempoolLater = !fRequestShutdown; } /** Sanity checks diff --git a/src/validation.cpp b/src/validation.cpp index bd60bbfdc..b36e90112 100644 --- a/src/validation.cpp +++ b/src/validation.cpp @@ -4076,6 +4076,8 @@ bool LoadMempool(void) } else { ++skipped; } + if (ShutdownRequested()) + return false; } std::map mapDeltas; file >> mapDeltas;