diff --git a/db/db_impl/db_impl.cc b/db/db_impl/db_impl.cc index cb5308127d095610965010784a7e09f8ccb758be..36fe87912cad9d571c7fc33b21d505cbb3587132 100644 --- a/db/db_impl/db_impl.cc +++ b/db/db_impl/db_impl.cc @@ -689,14 +689,13 @@ void DBImpl::StartTimedTasks() { // threads dumping at once, which causes severe lock contention in // jemalloc. Ensure successive `DB::Open()`s are staggered by at least // one second in the common case. - static uint64_t stats_dump_threads_started = 0; + static std::atomic stats_dump_threads_started(0); thread_dump_stats_.reset(new ROCKSDB_NAMESPACE::RepeatableThread( [this]() { DBImpl::DumpStats(); }, "dump_st", env_, static_cast(stats_dump_period_sec) * kMicrosInSecond, - stats_dump_threads_started % + stats_dump_threads_started.fetch_add(1) % static_cast(stats_dump_period_sec) * kMicrosInSecond)); - ++stats_dump_threads_started; } } stats_persist_period_sec = mutable_db_options_.stats_persist_period_sec; @@ -1097,15 +1096,14 @@ Status DBImpl::SetDBOptions( // severe lock contention in jemalloc. Ensure successive enabling of // `stats_dump_period_sec` are staggered by at least one second in the // common case. - static uint64_t stats_dump_threads_started = 0; + static std::atomic stats_dump_threads_started(0); thread_dump_stats_.reset(new ROCKSDB_NAMESPACE::RepeatableThread( [this]() { DBImpl::DumpStats(); }, "dump_st", env_, static_cast(new_options.stats_dump_period_sec) * kMicrosInSecond, - stats_dump_threads_started % + stats_dump_threads_started.fetch_add(1) % static_cast(new_options.stats_dump_period_sec) * kMicrosInSecond)); - ++stats_dump_threads_started; } else { thread_dump_stats_.reset(); }