diff options
author | David Rousselie <dax@happycoders.org> | 2008-09-04 23:39:18 +0400 |
---|---|---|
committer | David Rousselie <dax@happycoders.org> | 2008-09-04 23:39:18 +0400 |
commit | 57dfbfeb2b94f947595bad077cd92cf8cb64b064 (patch) | |
tree | 4141caf3189793a33040be65b114d26e93c924f2 /src | |
parent | b4b2f86a9d056fc2c689c7ab3e972919477c2e96 (diff) |
Add methods to switch off signals handling in JCLComponent
darcs-hash:20080904193918-86b55-2aac67792d9aa49ec5746ba594acf1cf61096212.gz
Diffstat (limited to 'src')
-rw-r--r-- | src/jcl/jabber/component.py | 21 | ||||
-rw-r--r-- | src/jcl/jabber/tests/feeder.py | 1 |
2 files changed, 18 insertions, 4 deletions
diff --git a/src/jcl/jabber/component.py b/src/jcl/jabber/component.py index 77c9854..8db175d 100644 --- a/src/jcl/jabber/component.py +++ b/src/jcl/jabber/component.py @@ -655,8 +655,8 @@ class JCLComponent(Component, object): self._restart = False self.last_activity = int(time.time()) - signal.signal(signal.SIGINT, self.signal_handler) - signal.signal(signal.SIGTERM, self.signal_handler) + self.signals_enabled = False + self.enable_signals() def run(self): """ @@ -688,8 +688,7 @@ class JCLComponent(Component, object): self.__logger.info("Connection failed, restarting.") return (True, 5) finally: - signal.signal(signal.SIGINT, signal.default_int_handler) - signal.signal(signal.SIGTERM, signal.default_int_handler) + self.disable_signals() if not self.running: self._restart = False wait_before_restart = 0 @@ -706,6 +705,20 @@ class JCLComponent(Component, object): self.__logger.debug("Exitting normally") return (self._restart, wait_before_restart) + def enable_signals(self): + """Enable signals""" + if not self.signals_enabled: + self.signals_enabled = True + signal.signal(signal.SIGINT, signal.default_int_handler) + signal.signal(signal.SIGTERM, signal.default_int_handler) + + def disable_signals(self): + """Enable signals""" + if self.signals_enabled: + self.signals_enabled = False + signal.signal(signal.SIGINT, signal.default_int_handler) + signal.signal(signal.SIGTERM, signal.default_int_handler) + def _get_restart(self): return self._restart diff --git a/src/jcl/jabber/tests/feeder.py b/src/jcl/jabber/tests/feeder.py index 16b8e11..71e07a5 100644 --- a/src/jcl/jabber/tests/feeder.py +++ b/src/jcl/jabber/tests/feeder.py @@ -68,6 +68,7 @@ class FeederComponent_TestCase(JCLComponent_TestCase): self.comp.handle_tick = end_run self.comp.stream = MockStream() self.comp.stream_class = MockStream + self.comp.disable_signals() run_thread = threading.Thread(target=self.comp.run, name="run_thread") run_thread.start() |