wallet: Track scanning duration

This commit is contained in:
João Barbosa 2019-04-03 16:57:24 +01:00
parent bdd7217f2c
commit 2ee811e693

View file

@ -596,6 +596,7 @@ class CWallet final : public CCryptoKeyStore, private interfaces::Chain::Notific
private:
std::atomic<bool> fAbortRescan{false};
std::atomic<bool> fScanningWallet{false}; // controlled by WalletRescanReserver
std::atomic<int64_t> m_scanning_start{0};
std::mutex mutexScanning;
friend class WalletRescanReserver;
@ -820,6 +821,7 @@ public:
void AbortRescan() { fAbortRescan = true; }
bool IsAbortingRescan() { return fAbortRescan; }
bool IsScanning() { return fScanningWallet; }
int64_t ScanningDuration() const { return fScanningWallet ? GetTimeMillis() - m_scanning_start : 0; }
/**
* keystore implementation
@ -1241,6 +1243,7 @@ public:
if (m_wallet->fScanningWallet) {
return false;
}
m_wallet->m_scanning_start = GetTimeMillis();
m_wallet->fScanningWallet = true;
m_could_reserve = true;
return true;