diff --git a/src/AsyncWorkQueue.cpp b/src/AsyncWorkQueue.cpp index fddfa840b..8d04b742a 100644 --- a/src/AsyncWorkQueue.cpp +++ b/src/AsyncWorkQueue.cpp @@ -28,6 +28,7 @@ void AsyncWorkQueue::WorkerThreadMain() if (m_workqueue.empty()) m_cvWakeup.wait(lock); + aeThreadOnline(); while (!m_workqueue.empty()) { WorkItem task = std::move(m_workqueue.front()); @@ -43,14 +44,13 @@ void AsyncWorkQueue::WorkerThreadMain() lock.unlock(); serverTL->gcEpoch = g_pserver->garbageCollector.startEpoch(); if (listLength(serverTL->clients_pending_asyncwrite)) { - aeThreadOnline(); aeAcquireLock(); ProcessPendingAsyncWrites(); aeReleaseLock(); - aeThreadOffline(); } g_pserver->garbageCollector.endEpoch(serverTL->gcEpoch); serverTL->gcEpoch.reset(); + aeThreadOffline(); } listRelease(vars.clients_pending_asyncwrite); diff --git a/src/db.cpp b/src/db.cpp index 2b1321bcf..a115c887b 100644 --- a/src/db.cpp +++ b/src/db.cpp @@ -1068,9 +1068,7 @@ void keysCommand(client *c) { blockClient(c, BLOCKED_ASYNC); redisDb *db = c->db; g_pserver->asyncworkqueue->AddWorkFunction([el, c, db, patternCopy, snapshot]{ - aeThreadOnline(); keysCommandCore(c, snapshot, patternCopy); - aeThreadOffline(); sdsfree(patternCopy); aePostFunction(el, [c, db, snapshot]{ aeReleaseLock(); // we need to lock with coordination of the client diff --git a/src/rdb.cpp b/src/rdb.cpp index 567ea0388..5d158eec5 100644 --- a/src/rdb.cpp +++ b/src/rdb.cpp @@ -3706,12 +3706,12 @@ void *rdbSaveToSlavesSocketsThread(void *vargs) int retval; rio rdb; + aeThreadOnline(); serverAssert(serverTL == nullptr); redisServerThreadVars vars; serverTL = &vars; vars.gcEpoch = g_pserver->garbageCollector.startEpoch(); - aeThreadOnline(); rioInitWithFd(&rdb,args->rdb_pipe_write); retval = rdbSaveRioWithEOFMark(&rdb,args->rgpdb,NULL,&args->rsi); diff --git a/src/replication.cpp b/src/replication.cpp index e57cf184f..1f20f225d 100644 --- a/src/replication.cpp +++ b/src/replication.cpp @@ -1196,7 +1196,6 @@ int rdbSaveSnapshotForReplication(struct rdbSaveInfo *rsi) { size_t cbData = 0; size_t cbLastUpdate = 0; auto &replBuf = *spreplBuf; - aeThreadOnline(); // Databases replBuf.addArrayLen(cserver.dbnum); for (int idb = 0; idb < cserver.dbnum; ++idb) { @@ -1244,7 +1243,6 @@ int rdbSaveSnapshotForReplication(struct rdbSaveInfo *rsi) { replBuf.putSlavesOnline(); aeReleaseLock(); } - aeThreadOffline(); }); return retval;