mdns: fix possible deadlock on mdns deinit calling mdns_free()
mnds_free() initiates stop and delete timer tasks, which after locking the mutex could lead to a dead lock in case timer task executed before deleting the task, as it would wait indefinitelly for unlocking the mutex. This condition is fixed by calling _mdns_stop_timer without locking the mutex, because there's no need to protect any data when stopping and deleting the timer task Closes https://github.com/espressif/esp-idf/issues/1696
This commit is contained in:
parent
0e06b4d653
commit
8e4ec90dc4
1 changed files with 0 additions and 2 deletions
|
@ -4040,9 +4040,7 @@ static esp_err_t _mdns_service_task_start()
|
||||||
*/
|
*/
|
||||||
static esp_err_t _mdns_service_task_stop()
|
static esp_err_t _mdns_service_task_stop()
|
||||||
{
|
{
|
||||||
MDNS_SERVICE_LOCK();
|
|
||||||
_mdns_stop_timer();
|
_mdns_stop_timer();
|
||||||
MDNS_SERVICE_UNLOCK();
|
|
||||||
if (_mdns_service_task_handle) {
|
if (_mdns_service_task_handle) {
|
||||||
mdns_action_t action;
|
mdns_action_t action;
|
||||||
mdns_action_t * a = &action;
|
mdns_action_t * a = &action;
|
||||||
|
|
Loading…
Reference in a new issue