@@ -71,12 +71,12 @@ static const unsigned int MAX_DISCONNECTED_TX_POOL_SIZE = 20000;
71
71
static const unsigned int BLOCKFILE_CHUNK_SIZE = 0x1000000 ; // 16 MiB
72
72
/* * The pre-allocation chunk size for rev?????.dat files (since 0.8) */
73
73
static const unsigned int UNDOFILE_CHUNK_SIZE = 0x100000 ; // 1 MiB
74
- /* * Time to wait (in seconds) between writing blocks/block index to disk. */
75
- static const unsigned int DATABASE_WRITE_INTERVAL = 60 * 60 ;
76
- /* * Time to wait (in seconds) between flushing chainstate to disk. */
77
- static const unsigned int DATABASE_FLUSH_INTERVAL = 24 * 60 * 60 ;
78
- /* * Maximum age of our tip in seconds for us to be considered current for fee estimation */
79
- static const int64_t MAX_FEE_ESTIMATION_TIP_AGE = 3 * 60 * 60 ;
74
+ /* * Time to wait between writing blocks/block index to disk. */
75
+ static constexpr std::chrono::hours DATABASE_WRITE_INTERVAL{ 1 } ;
76
+ /* * Time to wait between flushing chainstate to disk. */
77
+ static constexpr std::chrono::hours DATABASE_FLUSH_INTERVAL{ 24 } ;
78
+ /* * Maximum age of our tip for us to be considered current for fee estimation */
79
+ static constexpr std::chrono::hours MAX_FEE_ESTIMATION_TIP_AGE{ 3 } ;
80
80
81
81
bool CBlockIndexWorkComparator::operator ()(const CBlockIndex *pa, const CBlockIndex *pb) const {
82
82
// First sort by most total work, ...
@@ -347,7 +347,7 @@ static bool IsCurrentForFeeEstimation() EXCLUSIVE_LOCKS_REQUIRED(cs_main)
347
347
AssertLockHeld (cs_main);
348
348
if (::ChainstateActive ().IsInitialBlockDownload ())
349
349
return false ;
350
- if (::ChainActive ().Tip ()->GetBlockTime () < (GetTime () - MAX_FEE_ESTIMATION_TIP_AGE))
350
+ if (::ChainActive ().Tip ()->GetBlockTime () < count_seconds (GetTime<std::chrono::seconds> () - MAX_FEE_ESTIMATION_TIP_AGE))
351
351
return false ;
352
352
if (::ChainActive ().Height () < pindexBestHeader->nHeight - 1 )
353
353
return false ;
@@ -2269,8 +2269,8 @@ bool CChainState::FlushStateToDisk(
2269
2269
{
2270
2270
LOCK (cs_main);
2271
2271
assert (this ->CanFlushToDisk ());
2272
- static int64_t nLastWrite = 0 ;
2273
- static int64_t nLastFlush = 0 ;
2272
+ static std::chrono::microseconds nLastWrite{ 0 } ;
2273
+ static std::chrono::microseconds nLastFlush{ 0 } ;
2274
2274
std::set<int > setFilesToPrune;
2275
2275
bool full_flush_completed = false ;
2276
2276
@@ -2302,22 +2302,22 @@ bool CChainState::FlushStateToDisk(
2302
2302
}
2303
2303
}
2304
2304
}
2305
- int64_t nNow = GetTimeMicros ();
2305
+ const auto nNow = GetTime<std::chrono::microseconds> ();
2306
2306
// Avoid writing/flushing immediately after startup.
2307
- if (nLastWrite == 0 ) {
2307
+ if (nLastWrite. count () == 0 ) {
2308
2308
nLastWrite = nNow;
2309
2309
}
2310
- if (nLastFlush == 0 ) {
2310
+ if (nLastFlush. count () == 0 ) {
2311
2311
nLastFlush = nNow;
2312
2312
}
2313
2313
// The cache is large and we're within 10% and 10 MiB of the limit, but we have time now (not in the middle of a block processing).
2314
2314
bool fCacheLarge = mode == FlushStateMode::PERIODIC && cache_state >= CoinsCacheSizeState::LARGE;
2315
2315
// The cache is over the limit, we have to write now.
2316
2316
bool fCacheCritical = mode == FlushStateMode::IF_NEEDED && cache_state >= CoinsCacheSizeState::CRITICAL;
2317
2317
// It's been a while since we wrote the block index to disk. Do this frequently, so we don't need to redownload after a crash.
2318
- bool fPeriodicWrite = mode == FlushStateMode::PERIODIC && nNow > nLastWrite + ( int64_t ) DATABASE_WRITE_INTERVAL * 1000000 ;
2318
+ bool fPeriodicWrite = mode == FlushStateMode::PERIODIC && nNow > nLastWrite + DATABASE_WRITE_INTERVAL;
2319
2319
// It's been very long since we flushed the cache. Do this infrequently, to optimize cache usage.
2320
- bool fPeriodicFlush = mode == FlushStateMode::PERIODIC && nNow > nLastFlush + ( int64_t ) DATABASE_FLUSH_INTERVAL * 1000000 ;
2320
+ bool fPeriodicFlush = mode == FlushStateMode::PERIODIC && nNow > nLastFlush + DATABASE_FLUSH_INTERVAL;
2321
2321
// Combine all conditions that result in a full cache flush.
2322
2322
fDoFullFlush = (mode == FlushStateMode::ALWAYS) || fCacheLarge || fCacheCritical || fPeriodicFlush || fFlushForPrune ;
2323
2323
// Write blocks and block index to disk.
0 commit comments