From 23cd873377250d3ac43f9e2ba77651a7bb59619e Mon Sep 17 00:00:00 2001 From: Chase Sterling Date: Thu, 19 Jan 2012 01:54:26 +0000 Subject: [PATCH] Add manager.shutdown event. Change deluge plugin twisted reactor stop to happen at manager.shutdown, instead of process_end. May fix problems with ReactorNotRestartable error when feeds are aborted and in webui. refs #1175 git-svn-id: http://svn.flexget.com/trunk@2681 3942dd89-8c5d-46d7-aeed-044bccf3e60c --- flexget/manager.py | 5 +++++ flexget/plugins/plugin_deluge.py | 15 +++++++-------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/flexget/manager.py b/flexget/manager.py index c9d458cb9e..c1e3c99a23 100644 --- a/flexget/manager.py +++ b/flexget/manager.py @@ -75,6 +75,10 @@ class Manager(object): * manager.execute.completed After manager has executed all Feeds + + * manager.shutdown + + When the manager is exiting """ unit_test = False @@ -598,6 +602,7 @@ def db_cleanup(self): def shutdown(self): """ Application is being exited """ + fire_event('manager.shutdown', self) if not self.unit_test: # don't scroll "nosetests" summary results when logging is enabled log.debug('Shutting down') self.engine.dispose() diff --git a/flexget/plugins/plugin_deluge.py b/flexget/plugins/plugin_deluge.py index eaa027841a..87ad5bdb05 100644 --- a/flexget/plugins/plugin_deluge.py +++ b/flexget/plugins/plugin_deluge.py @@ -4,6 +4,7 @@ import base64 import re import sys +from flexget.event import event from flexget.entry import Entry from flexget.utils.tools import make_valid_path from flexget.plugin import register_plugin, PluginError, priority, get_plugin_by_name, DependencyError @@ -181,14 +182,12 @@ def connect(self, feed, config): raise result return result - def on_process_end(self, feed, config): - """Shut down the twisted reactor after all feeds have run.""" - if not reactor._stopped: - log.debug('Stopping twisted reactor.') - reactor.stop() - - def on_feed_abort(self, feed, config): - self.on_process_end(feed, config) + @event('manager.shutdown') + def stop_reactor(manager): + """Shut down the twisted reactor after all feeds have run.""" + if not reactor._stopped: + log.debug('Stopping twisted reactor.') + reactor.stop() except ImportError: pass