@@ -25,8 +25,6 @@ static void _mdns_browse_finish(mdns_browse_t *browse);
25
25
static void _mdns_browse_add (mdns_browse_t * browse );
26
26
static void _mdns_browse_send (mdns_browse_t * browse , mdns_if_t interface );
27
27
28
- static void _mdns_task_free_with_caps (void );
29
-
30
28
#if CONFIG_ETH_ENABLED && CONFIG_MDNS_PREDEF_NETIF_ETH
31
29
#include "esp_eth.h"
32
30
#endif
@@ -64,7 +62,7 @@ static const char *TAG = "mdns";
64
62
65
63
static volatile TaskHandle_t _mdns_service_task_handle = NULL ;
66
64
static SemaphoreHandle_t _mdns_service_semaphore = NULL ;
67
- StackType_t * _mdns_stack_buffer ;
65
+ static StackType_t * _mdns_stack_buffer ;
68
66
69
67
static void _mdns_search_finish_done (void );
70
68
static mdns_search_once_t * _mdns_search_find_from (mdns_search_once_t * search , mdns_name_t * name , uint16_t type , mdns_if_t tcpip_if , mdns_ip_protocol_t ip_protocol );
@@ -5427,8 +5425,8 @@ static void _mdns_service_task(void *pvParameters)
5427
5425
vTaskDelay (500 * portTICK_PERIOD_MS );
5428
5426
}
5429
5427
}
5430
- _mdns_task_free_with_caps ();
5431
5428
_mdns_service_task_handle = NULL ;
5429
+ vTaskDelete (NULL );
5432
5430
}
5433
5431
5434
5432
static void _mdns_timer_cb (void * arg )
@@ -5485,12 +5483,6 @@ static esp_err_t _mdns_task_create_with_caps(void)
5485
5483
return ret ;
5486
5484
}
5487
5485
5488
- static void _mdns_task_free_with_caps (void )
5489
- {
5490
- vTaskDelete (_mdns_service_task_handle );
5491
- heap_caps_free (_mdns_stack_buffer );
5492
- }
5493
-
5494
5486
/**
5495
5487
* @brief Start the service thread if not running
5496
5488
*
@@ -5545,7 +5537,7 @@ static esp_err_t _mdns_service_task_stop(void)
5545
5537
mdns_action_t * a = & action ;
5546
5538
action .type = ACTION_TASK_STOP ;
5547
5539
if (xQueueSend (_mdns_server -> action_queue , & a , (TickType_t )0 ) != pdPASS ) {
5548
- _mdns_task_free_with_caps ( );
5540
+ vTaskDelete ( _mdns_service_task_handle );
5549
5541
_mdns_service_task_handle = NULL ;
5550
5542
}
5551
5543
while (_mdns_service_task_handle ) {
@@ -5775,6 +5767,8 @@ void mdns_free(void)
5775
5767
mdns_service_remove_all ();
5776
5768
free_delegated_hostnames ();
5777
5769
_mdns_service_task_stop ();
5770
+ // at this point, the service task is deleted, so we can destroy the stack size
5771
+ heap_caps_free (_mdns_stack_buffer );
5778
5772
for (i = 0 ; i < MDNS_MAX_INTERFACES ; i ++ ) {
5779
5773
for (j = 0 ; j < MDNS_IP_PROTOCOL_MAX ; j ++ ) {
5780
5774
mdns_pcb_deinit_local (i , j );
0 commit comments