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:
parent
b1254618cd
commit
9d557afe26
|
@ -286,8 +286,10 @@ static void timer_process_alarm(esp_timer_dispatch_t dispatch_method)
|
||||||
uint64_t callback_start = now;
|
uint64_t callback_start = now;
|
||||||
s_timer_in_callback = it;
|
s_timer_in_callback = it;
|
||||||
#endif
|
#endif
|
||||||
|
esp_timer_cb_t callback = it->callback;
|
||||||
|
void* arg = it->arg;
|
||||||
timer_list_unlock();
|
timer_list_unlock();
|
||||||
(*it->callback)(it->arg);
|
(*callback)(arg);
|
||||||
timer_list_lock();
|
timer_list_lock();
|
||||||
now = esp_timer_impl_get_time();
|
now = esp_timer_impl_get_time();
|
||||||
#if WITH_PROFILING
|
#if WITH_PROFILING
|
||||||
|
|
Loading…
Reference in a new issue