From 9c5dc853ec5ceba809e7f02cdde87c90544a45e1 Mon Sep 17 00:00:00 2001 From: chai Date: Tue, 6 Nov 2018 16:12:56 +0800 Subject: =?UTF-8?q?*=E7=8A=B6=E6=80=81=E6=9C=BA=E6=9D=A1=E4=BB=B6=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E5=A4=9A=E9=87=8D=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/libjin/Time/je_timer.cpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'src/libjin/Time/je_timer.cpp') 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 -- cgit v1.1-26-g67d0