esp_mqtt_abort_connection: Fixed an issue which could result in a race condition and subsequent crash

This commit is contained in:
Piyush Shah
2020-03-30 19:58:43 +05:30
parent 0fc904c5d8
commit dc1a635a97

View File

@ -571,6 +571,7 @@ static esp_err_t esp_mqtt_connect(esp_mqtt_client_handle_t client, int timeout_m
static esp_err_t esp_mqtt_abort_connection(esp_mqtt_client_handle_t client)
{
MQTT_API_LOCK(client);
esp_transport_close(client->transport);
client->wait_timeout_ms = client->config->reconnect_timeout_ms;
client->reconnect_tick = platform_tick_get_ms();
@ -579,6 +580,7 @@ static esp_err_t esp_mqtt_abort_connection(esp_mqtt_client_handle_t client)
client->event.event_id = MQTT_EVENT_DISCONNECTED;
client->wait_for_ping_resp = false;
esp_mqtt_dispatch_event_with_msgid(client);
MQTT_API_UNLOCK(client);
return ESP_OK;
}