Author: dmeyer
Date: Sat Mar 18 18:59:01 2006
New Revision: 8099
Modified:
trunk/tvserver/src/server.py
Log:
lock server while changing recordings
Modified: trunk/tvserver/src/server.py
==============================================================================
--- trunk/tvserver/src/server.py (original)
+++ trunk/tvserver/src/server.py Sat Mar 18 18:59:01 2006
@@ -84,6 +84,8 @@
self.last_listing = []
self.live_tv_map = {}
+ self.locked = False
+
# add port for channels and check if they are in live-tv mode
port = 6000
for index, channel in enumerate(self.epg.channels()):
@@ -117,6 +119,12 @@
"""
Print current schedule (for debug only)
"""
+ if self.locked:
+ # system busy, call again later
+ print_schedule()
+ return True
+
+ log.info('%s %s',id(self.recordings), len(self.recordings))
if hasattr(self, 'only_print_current'):
# print only latest recordings
all = False
@@ -144,12 +152,20 @@
"""
Reschedule all recordings.
"""
+ if self.locked:
+ # system busy, call again later
+ OneShotTimer(self.reschedule).start(0.1)
+ return True
+ self.locked = True
self.scheduler.schedule(self.recordings)
def scheduler_callback(self):
log.info('answer from scheduler')
+ # unlock system
+ self.locked = False
+
# send update
sending = []
listing = []
@@ -178,6 +194,11 @@
"""
Schedule recordings on recorder for the next SCHEDULE_TIMER seconds.
"""
+ if self.locked:
+ # system busy, call again later
+ OneShotTimer(self.schedule).start(0.1)
+ return True
+
log.info('calling self.schedule')
# sort by start time
self.recordings.sort(lambda l, o: cmp(l.start,o.start))
@@ -204,9 +225,22 @@
"""
Update recordings based on favorites and epg.
"""
- self.epg.check_all(self.favorites, self.recordings, self.reschedule)
+ if self.locked:
+ # system busy, call again later
+ OneShotTimer(self.epg_update).start(0.1)
+ return True
+ log.info('%s %s',id(self.recordings), len(self.recordings))
+ self.locked = True
+ self.epg.check_all(self.favorites, self.recordings,
self.epg_update_callback)
+
+ def epg_update_callback(self):
+ """
+ """
+ self.locked = False
+ self.reschedule()
+
#
# load / save fxd file with recordings and favorites
#
-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Freevo-cvslog mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog