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