@@ -1626,7 +1626,7 @@ void unlinkClient(client *c) {
16261626 c->fPendingAsyncWrite = FALSE ;
16271627 }
16281628
1629- serverTL->setclientsProcess .erase (c );
1629+ serverTL->vecclientsProcess .erase (std::remove (serverTL-> vecclientsProcess . begin (), serverTL-> vecclientsProcess . end (), c), serverTL-> vecclientsProcess . end () );
16301630 serverTL->setclientsPrefetch .erase (c);
16311631
16321632 /* Clear the tracking status. */
@@ -2822,7 +2822,7 @@ void readQueryFromClient(connection *conn) {
28222822 }
28232823 c->vecqueuedcmd .clear ();
28242824 } else {
2825- serverTL->setclientsProcess . insert (c);
2825+ serverTL->vecclientsProcess . push_back (c);
28262826 }
28272827 }
28282828 }
@@ -2839,10 +2839,10 @@ void processClients()
28392839{
28402840 serverAssert (GlobalLocksAcquired ());
28412841
2842- // Note that this function is reentrant and vecclients may be modified by code called from processInputBuffer
2843- while (!serverTL->setclientsProcess .empty ()) {
2844- client *c = *serverTL->setclientsProcess .begin ();
2845- serverTL->setclientsProcess .erase (serverTL->setclientsProcess .begin ());
2842+ // Note that this function is reentrant and vecclientsProcess may be modified by code called from processInputBuffer
2843+ while (!serverTL->vecclientsProcess .empty ()) {
2844+ client *c = *serverTL->vecclientsProcess .begin ();
2845+ serverTL->vecclientsProcess .erase (serverTL->vecclientsProcess .begin ());
28462846
28472847 /* There is more data in the client input buffer, continue parsing it
28482848 * in case to check if there is a full command to execute. */
0 commit comments