From 180b850795504efd53eb01c8390dba56c7607ea6 Mon Sep 17 00:00:00 2001 From: Mathieu Carbou Date: Tue, 28 Jan 2025 20:59:12 +0100 Subject: [PATCH] fix(ws): break loop after erasing client --- src/AsyncWebSocket.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/AsyncWebSocket.cpp b/src/AsyncWebSocket.cpp index c9e58501..903e23fb 100644 --- a/src/AsyncWebSocket.cpp +++ b/src/AsyncWebSocket.cpp @@ -916,11 +916,10 @@ void AsyncWebSocket::cleanupClients(uint16_t maxClients) { _clients.front().close(); } - for (auto iter = std::begin(_clients); iter != std::end(_clients);) { - if (iter->shouldBeDeleted()) { - iter = _clients.erase(iter); - } else { - iter++; + for (auto i = _clients.begin(); i != _clients.end(); ++i) { + if (i->shouldBeDeleted()) { + _clients.erase(i); + break; } } }