diff --git a/esp32/lib/ESP32-sveltekit/EventSocket.cpp b/esp32/lib/ESP32-sveltekit/EventSocket.cpp index 3c8d335..b3cc737 100644 --- a/esp32/lib/ESP32-sveltekit/EventSocket.cpp +++ b/esp32/lib/ESP32-sveltekit/EventSocket.cpp @@ -61,9 +61,11 @@ void EventSocket::onWSOpen(PsychicWebSocketClient *client) { } void EventSocket::onWSClose(PsychicWebSocketClient *client) { + xSemaphoreTake(clientSubscriptionsMutex, portMAX_DELAY); for (auto &event_subscriptions : client_subscriptions) { event_subscriptions.second.remove(client->socket()); } + xSemaphoreGive(clientSubscriptionsMutex); ESP_LOGI("EventSocket", "ws[%s][%u] disconnect", client->remoteIP().toString().c_str(), client->socket()); }