Merge pull request #704 from bryghtlabs-richard/fix/websocketWriterLag

fix(websocket): release client-lock during WEBSOCKET_EVENT_DATA (IDFGH-14545)
This commit is contained in:
Guilherme Alves Ferreira
2025-04-10 12:16:31 -03:00
committed by GitHub

View File

@ -1071,12 +1071,6 @@ static void esp_websocket_client_task(void *pv)
break;
}
client->ping_tick_ms = _tick_get_ms();
if (esp_websocket_client_recv(client) == ESP_FAIL) {
ESP_LOGE(TAG, "Error receive data");
esp_websocket_client_abort_connection(client, WEBSOCKET_ERROR_TYPE_TCP_TRANSPORT);
break;
}
break;
case WEBSOCKET_STATE_WAIT_TIMEOUT:
@ -1113,6 +1107,13 @@ static void esp_websocket_client_task(void *pv)
xSemaphoreTakeRecursive(client->lock, lock_timeout);
esp_websocket_client_abort_connection(client, WEBSOCKET_ERROR_TYPE_TCP_TRANSPORT);
xSemaphoreGiveRecursive(client->lock);
} else if (read_select > 0) {
if (esp_websocket_client_recv(client) == ESP_FAIL) {
ESP_LOGE(TAG, "Error receive data");
xSemaphoreTakeRecursive(client->lock, lock_timeout);
esp_websocket_client_abort_connection(client, WEBSOCKET_ERROR_TYPE_TCP_TRANSPORT);
xSemaphoreGiveRecursive(client->lock);
}
}
} else if (WEBSOCKET_STATE_WAIT_TIMEOUT == client->state) {
// waiting for reconnecting...