aboutsummaryrefslogtreecommitdiff
path: root/src/libjin/Time/je_timer.cpp
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2018-11-06 16:12:56 +0800
committerchai <chaifix@163.com>2018-11-06 16:12:56 +0800
commit9c5dc853ec5ceba809e7f02cdde87c90544a45e1 (patch)
tree709bcc9409c8088a0d2be83ab14ddd230512b23f /src/libjin/Time/je_timer.cpp
parent1d1210d7932b287d66e27157701b92df764528cb (diff)
*状态机条件使用多重条件
Diffstat (limited to 'src/libjin/Time/je_timer.cpp')
-rw-r--r--src/libjin/Time/je_timer.cpp18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/libjin/Time/je_timer.cpp b/src/libjin/Time/je_timer.cpp
index 94ab747..fcd805c 100644
--- a/src/libjin/Time/je_timer.cpp
+++ b/src/libjin/Time/je_timer.cpp
@@ -36,6 +36,17 @@ namespace JinEngine
}
}
+ void Timer::cancel(Handler* handler)
+ {
+ handler->canceled = true;
+ }
+
+ void Timer::cancelAll()
+ {
+ for (auto h : mHandlers)
+ cancel(h);
+ }
+
Timer::Handler* Timer::every(int ms, TimerCallback callback, void* p)
{
Handler* t = new Handler(Handler::EVERY, ms, 0, callback, p);
@@ -79,7 +90,7 @@ namespace JinEngine
if (tickdown <= 0)
{
tickdown = duration;
- if (callback != nullptr)
+ if (!canceled && callback != nullptr)
callback(paramters);
if (type == EVERY)
{
@@ -97,11 +108,6 @@ namespace JinEngine
}
}
- void Timer::cancel(Handler* handler)
- {
- handler->canceled = true;
- }
-
} // namespace Time
} // namespace JinEngine