Fixes to resume data saving routines.

* Avoid saving resume data unecessarily by checking the queue of calls
* Removed unecessary LoopingCall for resume data
This commit is contained in:
bendikro 2014-01-19 21:55:34 +01:00 committed by Calum Lind
parent dbf4f67c55
commit dfed6af0c0
1 changed files with 3 additions and 8 deletions

View File

@ -202,7 +202,6 @@ class TorrentManager(component.Component):
# Define timers
self.save_state_timer = LoopingCall(self.save_state)
self.save_resume_data_timer = LoopingCall(self.save_resume_data)
self.save_all_resume_data_timer = LoopingCall(self.save_resume_data, self.torrents.keys())
self.prev_status_cleanup_loop = LoopingCall(self.cleanup_torrents_prev_status)
def start(self):
@ -240,8 +239,6 @@ class TorrentManager(component.Component):
# Save the state periodically
self.save_state_timer.start(200, False)
self.save_resume_data_timer.start(190, False)
# Force update for all resume data a bit less frequently
self.save_all_resume_data_timer.start(900, False)
self.prev_status_cleanup_loop.start(10)
def stop(self):
@ -252,9 +249,6 @@ class TorrentManager(component.Component):
if self.save_resume_data_timer.running:
self.save_resume_data_timer.stop()
if self.save_all_resume_data_timer.running:
self.save_all_resume_data_timer.stop()
if self.prev_status_cleanup_loop.running:
self.prev_status_cleanup_loop.stop()
@ -682,7 +676,7 @@ class TorrentManager(component.Component):
break
self.alerts.wait_on_handler = False
log.info("Finished loading %d torrents." % len(state.torrents))
component.get("EventManager").emit(SessionStartedEvent())
def save_state(self):
@ -782,7 +776,8 @@ class TorrentManager(component.Component):
self.torrents[torrent_id].save_resume_data(flush_disk_cache)
def on_all_resume_data_finished(result):
if result:
"""Saves resume data file when no more torrents waiting for resume data"""
if result and not self.waiting_on_resume_data:
if self.save_resume_data_file():
# Return True for the remove_temp_file() callback in stop()
return True