esp_timer: fix the bug that when timeout of timer happens try to run callback, and high priority task delete the timer and break the callback

This commit is contained in:
Jack 2019-11-19 22:55:25 +08:00
parent b1254618cd
commit 9d557afe26

View file

@ -286,8 +286,10 @@ static void timer_process_alarm(esp_timer_dispatch_t dispatch_method)
uint64_t callback_start = now;
s_timer_in_callback = it;
#endif
esp_timer_cb_t callback = it->callback;
void* arg = it->arg;
timer_list_unlock();
(*it->callback)(it->arg);
(*callback)(arg);
timer_list_lock();
now = esp_timer_impl_get_time();
#if WITH_PROFILING