From bfbdf23b1a10b6a84944f86d8b7e4270af282bfa Mon Sep 17 00:00:00 2001 From: John Sully Date: Fri, 26 Feb 2021 05:40:56 +0000 Subject: [PATCH] Eliminate needless lock Former-commit-id: 60f972d463f202edb33ff9a25bc2bd3e2558105c --- src/db.cpp | 4 ++-- src/server.cpp | 2 -- src/server.h | 4 ++-- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/db.cpp b/src/db.cpp index ee79536d6..20e8ac014 100644 --- a/src/db.cpp +++ b/src/db.cpp @@ -2834,9 +2834,9 @@ bool redisDbPersistentData::removeCachedValue(const char *key) void redisDbPersistentData::trackChanges(bool fBulk) { - m_fTrackingChanges++; + m_fTrackingChanges.fetch_add(1, std::memory_order_relaxed); if (fBulk) - m_fAllChanged++; + m_fAllChanged.fetch_add(1, std::memory_order_acq_rel); } void redisDbPersistentData::removeAllCachedValues() diff --git a/src/server.cpp b/src/server.cpp index 4dcca26bb..1bc9ab175 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -2650,10 +2650,8 @@ void afterSleep(struct aeEventLoop *eventLoop) { serverAssert(serverTL->gcEpoch.isReset()); serverTL->gcEpoch = g_pserver->garbageCollector.startEpoch(); - aeAcquireLock(); for (int idb = 0; idb < cserver.dbnum; ++idb) g_pserver->db[idb]->trackChanges(false); - aeReleaseLock(); } /* =========================== Server initialization ======================== */ diff --git a/src/server.h b/src/server.h index 1ecf838ea..8e29ac196 100644 --- a/src/server.h +++ b/src/server.h @@ -1172,8 +1172,8 @@ private: // Keyspace dict *m_pdict = nullptr; /* The keyspace for this DB */ dict *m_pdictTombstone = nullptr; /* Track deletes when we have a snapshot */ - int m_fTrackingChanges = 0; // Note: Stack based - int m_fAllChanged = 0; + std::atomic m_fTrackingChanges {0}; // Note: Stack based + std::atomic m_fAllChanged {0}; std::set m_setchanged; size_t m_cnewKeysPending = 0; std::shared_ptr m_spstorage = nullptr;