Make processClients reentrant

Former-commit-id: e39bdb58ec28d80c5ed2cf15ef6bc7b884e14d4b
This commit is contained in:
John Sully 2021-05-29 01:08:14 +00:00
parent 589e95e0c8
commit 1d0378e0dc

View File

@ -2573,7 +2573,9 @@ void processClients()
{
serverAssert(GlobalLocksAcquired());
for (client *c : serverTL->vecclientsProcess) {
while (!serverTL->vecclientsProcess.empty()) {
client *c = serverTL->vecclientsProcess.front();
serverTL->vecclientsProcess.erase(serverTL->vecclientsProcess.begin());
/* There is more data in the client input buffer, continue parsing it
* in case to check if there is a full command to execute. */
std::unique_lock<fastlock> ul(c->lock);