diff --git a/a8/timer.cc b/a8/timer.cc index 4753894..4e889c5 100644 --- a/a8/timer.cc +++ b/a8/timer.cc @@ -292,25 +292,27 @@ namespace a8 if (timer->timer_after_func) { timer->timer_after_func(timer->param); } - switch (timer->timer_type) { - case 1: - case 2: //循环类定时 fixed timer也是循环定时器 - { - if (timer->timer_type == 2) { - timer->fixed_timer_execute_times++; + if (base_->running_timer) { + switch (timer->timer_type) { + case 1: + case 2: //循环类定时 fixed timer也是循环定时器 + { + if (timer->timer_type == 2) { + timer->fixed_timer_execute_times++; + } + ModifyTimer(timer, timer->milli_seconds); } - ModifyTimer(timer, timer->milli_seconds); - } - break; - default: //deadline timer - { - DetachTimer(timer); - if (!list_empty(&timer->attach_entry)) { - list_del_init(&timer->attach_entry); + break; + default: //deadline timer + { + DetachTimer(timer); + if (!list_empty(&timer->attach_entry)) { + list_del_init(&timer->attach_entry); + } + AddToFreeList(timer); } - AddToFreeList(timer); + break; } - break; } } }