@@ -71,10 +71,10 @@ 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 ;
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
78
/* * Maximum age of our tip in seconds for us to be considered current for fee estimation */
79
79
static const int64_t MAX_FEE_ESTIMATION_TIP_AGE = 3 * 60 * 60 ;
80
80
@@ -2264,8 +2264,8 @@ bool CChainState::FlushStateToDisk(
2264
2264
{
2265
2265
LOCK (cs_main);
2266
2266
assert (this ->CanFlushToDisk ());
2267
- static int64_t nLastWrite = 0 ;
2268
- static int64_t nLastFlush = 0 ;
2267
+ static std::chrono::microseconds nLastWrite{ 0 } ;
2268
+ static std::chrono::microseconds nLastFlush{ 0 } ;
2269
2269
std::set<int > setFilesToPrune;
2270
2270
bool full_flush_completed = false ;
2271
2271
@@ -2297,22 +2297,22 @@ bool CChainState::FlushStateToDisk(
2297
2297
}
2298
2298
}
2299
2299
}
2300
- int64_t nNow = GetTimeMicros ();
2300
+ const auto nNow = GetTime<std::chrono::microseconds> ();
2301
2301
// Avoid writing/flushing immediately after startup.
2302
- if (nLastWrite == 0 ) {
2302
+ if (nLastWrite. count () == 0 ) {
2303
2303
nLastWrite = nNow;
2304
2304
}
2305
- if (nLastFlush == 0 ) {
2305
+ if (nLastFlush. count () == 0 ) {
2306
2306
nLastFlush = nNow;
2307
2307
}
2308
2308
// 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).
2309
2309
bool fCacheLarge = mode == FlushStateMode::PERIODIC && cache_state >= CoinsCacheSizeState::LARGE;
2310
2310
// The cache is over the limit, we have to write now.
2311
2311
bool fCacheCritical = mode == FlushStateMode::IF_NEEDED && cache_state >= CoinsCacheSizeState::CRITICAL;
2312
2312
// 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.
2313
- bool fPeriodicWrite = mode == FlushStateMode::PERIODIC && nNow > nLastWrite + ( int64_t ) DATABASE_WRITE_INTERVAL * 1000000 ;
2313
+ bool fPeriodicWrite = mode == FlushStateMode::PERIODIC && nNow > nLastWrite + DATABASE_WRITE_INTERVAL;
2314
2314
// It's been very long since we flushed the cache. Do this infrequently, to optimize cache usage.
2315
- bool fPeriodicFlush = mode == FlushStateMode::PERIODIC && nNow > nLastFlush + ( int64_t ) DATABASE_FLUSH_INTERVAL * 1000000 ;
2315
+ bool fPeriodicFlush = mode == FlushStateMode::PERIODIC && nNow > nLastFlush + DATABASE_FLUSH_INTERVAL;
2316
2316
// Combine all conditions that result in a full cache flush.
2317
2317
fDoFullFlush = (mode == FlushStateMode::ALWAYS) || fCacheLarge || fCacheCritical || fPeriodicFlush || fFlushForPrune ;
2318
2318
// Write blocks and block index to disk.
0 commit comments