From 8ab07d896fab50c552a60220fa2508967f76a69b Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Fri, 29 May 2020 12:44:06 +0800 Subject: [PATCH] add AddRepeatTimerAndAttach --- a8/timer.cc | 17 +++++++++++++++++ a8/timer.h | 5 +++++ 2 files changed, 22 insertions(+) diff --git a/a8/timer.cc b/a8/timer.cc index 5618288..98a81ec 100644 --- a/a8/timer.cc +++ b/a8/timer.cc @@ -194,6 +194,17 @@ namespace a8 return timer; } + timer_list* Timer::AddRepeatTimerAndAttach(int milli_seconds, + a8::XParams param, + a8::TimerFunc timer_func, + list_head* attach_list, + a8::TimerAfterFunc timer_after_func) + { + timer_list* timer = AddRepeatTimer(milli_seconds, param, timer_func); + list_add_tail(&timer->attach_entry, attach_list); + return timer; + } + timer_list* Timer::AddFixedTimer(int milli_seconds, a8::XParams param, a8::TimerFunc timer_func) { timer_list *timer = NewTimerList(); @@ -223,6 +234,12 @@ namespace a8 void Timer::DeleteTimer(timer_list* timer) { + if (!timer) { + abort(); + } + if (base_->running_timer == timer) { + base_->running_timer = nullptr; + } if (timer->timer_after_func) { timer->timer_after_func(timer->param); } diff --git a/a8/timer.h b/a8/timer.h index 5c0639c..e9b3818 100644 --- a/a8/timer.h +++ b/a8/timer.h @@ -32,6 +32,11 @@ namespace a8 a8::TimerAfterFunc timer_after_func = nullptr); //添加重复执行定时器(周期性定时器) timer_list* AddRepeatTimer(int milli_seconds, a8::XParams param, a8::TimerFunc timer_func); + timer_list* AddRepeatTimerAndAttach(int milli_seconds, + a8::XParams param, + a8::TimerFunc timer_func, + list_head* attach_list, + a8::TimerAfterFunc timer_after_func = nullptr); //添加固定时间定时器(每天,每次重启一天里可能会多次调用) timer_list* AddFixedTimer(int milli_seconds, a8::XParams param, a8::TimerFunc timer_func); //修改定时器参数