Add methods to switch off signals handling in JCLComponent
darcs-hash:20080904193918-86b55-2aac67792d9aa49ec5746ba594acf1cf61096212.gz
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user