[wallet] setup wallet background flushing in WalletInit directly
WalletInit::Start calls postInitProcess() for each wallet. Previously each call to postInitProcess() would attempt to schedule wallet background flushing. Just start wallet background flushing once from WalletInit::Start().
This commit is contained in:
@@ -23,7 +23,6 @@
|
||||
#include <primitives/block.h>
|
||||
#include <primitives/transaction.h>
|
||||
#include <script/script.h>
|
||||
#include <scheduler.h>
|
||||
#include <timedata.h>
|
||||
#include <txmempool.h>
|
||||
#include <utilmoneystr.h>
|
||||
@@ -4308,18 +4307,11 @@ CWallet* CWallet::CreateWalletFromFile(const std::string& name, const fs::path&
|
||||
return walletInstance;
|
||||
}
|
||||
|
||||
std::atomic<bool> CWallet::fFlushScheduled(false);
|
||||
|
||||
void CWallet::postInitProcess(CScheduler& scheduler)
|
||||
void CWallet::postInitProcess()
|
||||
{
|
||||
// Add wallet transactions that aren't already in a block to mempool
|
||||
// Do this here as mempool requires genesis block to be loaded
|
||||
ReacceptWalletTransactions();
|
||||
|
||||
// Run a thread to flush wallet periodically
|
||||
if (!CWallet::fFlushScheduled.exchange(true)) {
|
||||
scheduler.scheduleEvery(MaybeCompactWalletDB, 500);
|
||||
}
|
||||
}
|
||||
|
||||
bool CWallet::BackupWallet(const std::string& strDest)
|
||||
|
||||
Reference in New Issue
Block a user