void ets_timer_done(ETSTimer *ptimer) { if (timer_initialized(ptimer)) { esp_timer_delete(ESP_TIMER(ptimer)); ptimer->timer_arg = NULL; TIMER_INITIALIZED_FIELD(ptimer) = 0; } }
/* Task spawned by timer callback */ static void stop_prov_task(void * arg) { ESP_LOGI(TAG, "Stopping provisioning"); app_prov_stop_service(); /* Timer not needed anymore */ esp_timer_handle_t timer = g_prov->timer; esp_timer_delete(timer); g_prov->timer = NULL; /* Free provisioning process data */ free(g_prov); g_prov = NULL; ESP_LOGI(TAG, "Provisioning stopped"); vTaskDelete(NULL); }