aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar jesopo2019-07-09 11:14:05 +0100
committerGravatar jesopo2019-07-09 11:14:05 +0100
commit32fa999c78801d996a39cfb90fa628271eb7d9ed (patch)
treecc4ee8c79b229859a43faef60d5523088b04e7de /src
parentShow new label for PR 'labeled' events (diff)
signature
Allow Timer objects to be cancelled
Diffstat (limited to 'src')
-rw-r--r--src/Timers.py8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/Timers.py b/src/Timers.py
index c371038d..ea70ec69 100644
--- a/src/Timers.py
+++ b/src/Timers.py
@@ -18,7 +18,7 @@ class Timer(object):
def set_next_due(self):
self.next_due = time.time()+self.delay
def due(self) -> bool:
- return self.time_left() <= 0
+ return not self.done() and self.time_left() <= 0
def time_left(self) -> float:
return self.next_due-time.time()
@@ -27,6 +27,8 @@ class Timer(object):
self.set_next_due()
def finish(self):
self._done = True
+ def cancel(self):
+ self.finish()
def done(self) -> bool:
return self._done
@@ -108,8 +110,8 @@ class Timers(object):
timer.finish()
self.events.on("timer.%s" % timer.name).call(timer=timer,
**timer.kwargs)
- if timer.done():
- self._remove(timer)
+ if timer.done():
+ self._remove(timer)
def purge_context(self, context: str):
if context in self.context_timers: