aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.net>2005-11-28 03:57:37 +0000
committerFelix Domke <tmbinc@elitedvb.net>2005-11-28 03:57:37 +0000
commitcb50b5479d207eae71e302ff37e5960281c039c8 (patch)
tree0134976460bfc0ab4a15207199b94ba0b216c699
parent11027439f74d586f8c70abe86adbbf2e04ee53a1 (diff)
downloadenigma2-cb50b5479d207eae71e302ff37e5960281c039c8.tar.gz
enigma2-cb50b5479d207eae71e302ff37e5960281c039c8.zip
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.
-rw-r--r--RecordTimer.py16
-rw-r--r--timer.py3
2 files changed, 9 insertions, 10 deletions
diff --git a/RecordTimer.py b/RecordTimer.py
index 18cc64ab..1a64c5ef 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 bbad0be1..f5aee840 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()