From cb50b5479d207eae71e302ff37e5960281c039c8 Mon Sep 17 00:00:00 2001 From: Felix Domke Date: Mon, 28 Nov 2005 03:57:37 +0000 Subject: [PATCH] timer: passed timers will always be set to StateEnded, and set back to waiting when reprocessing (due timewarp). waiting timers will be removed from one list only. remove try/except. --- RecordTimer.py | 16 ++++++---------- timer.py | 3 +++ 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/RecordTimer.py b/RecordTimer.py index 18cc64a..1a64c5e 100644 --- a/RecordTimer.py +++ b/RecordTimer.py @@ -162,14 +162,13 @@ class RecordTimer(timer.Timer): self.timeChanged(entry) elif entry.state != timer.TimerEntry.StateEnded: entry.activate(timer.TimerEntry.EventAbort) - try: # FIXME: is needed, because after loading the timers, every timer (even already ended ones) - # have the state EventWaiting.. - self.timer_list.remove(entry) - except: - pass - + self.timer_list.remove(entry) + self.calcNextActivation() print "timer did not yet start - removing" + + # the timer was aborted, and removed. + return else: print "timer did already end - doing nothing." @@ -177,10 +176,7 @@ class RecordTimer(timer.Timer): print "in processed: ", entry in self.processed_timers print "in running: ", entry in self.timer_list # now the timer should be in the processed_timers list. remove it from there. - try: - self.processed_timers.remove(entry) - except: - pass + self.processed_timers.remove(entry) def shutdown(self): self.saveTimer() diff --git a/timer.py b/timer.py index bbad0be..f5aee84 100644 --- a/timer.py +++ b/timer.py @@ -103,6 +103,7 @@ class Timer: # right into the processedTimers. if entry.end <= time.time() and entry.state == TimerEntry.StateWait: bisect.insort(self.processed_timers, entry) + entry.state = TimerEntry.StateEnded else: bisect.insort(self.timer_list, entry) if not noRecalc: @@ -121,6 +122,8 @@ class Timer: tl = self.processed_timers self.processed_timers = [ ] for x in tl: + # simulate a "waiting" state to give them a chance to re-occure + x.state = TimerEntry.StateWaiting self.addTimerEntry(x, noRecalc=1) self.processActivation() -- 2.7.4