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._restart = False
|
||||||
self.last_activity = int(time.time())
|
self.last_activity = int(time.time())
|
||||||
|
|
||||||
signal.signal(signal.SIGINT, self.signal_handler)
|
self.signals_enabled = False
|
||||||
signal.signal(signal.SIGTERM, self.signal_handler)
|
self.enable_signals()
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
"""
|
"""
|
||||||
@@ -688,8 +688,7 @@ class JCLComponent(Component, object):
|
|||||||
self.__logger.info("Connection failed, restarting.")
|
self.__logger.info("Connection failed, restarting.")
|
||||||
return (True, 5)
|
return (True, 5)
|
||||||
finally:
|
finally:
|
||||||
signal.signal(signal.SIGINT, signal.default_int_handler)
|
self.disable_signals()
|
||||||
signal.signal(signal.SIGTERM, signal.default_int_handler)
|
|
||||||
if not self.running:
|
if not self.running:
|
||||||
self._restart = False
|
self._restart = False
|
||||||
wait_before_restart = 0
|
wait_before_restart = 0
|
||||||
@@ -706,6 +705,20 @@ class JCLComponent(Component, object):
|
|||||||
self.__logger.debug("Exitting normally")
|
self.__logger.debug("Exitting normally")
|
||||||
return (self._restart, wait_before_restart)
|
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):
|
def _get_restart(self):
|
||||||
return self._restart
|
return self._restart
|
||||||
|
|
||||||
|
|||||||
@@ -68,6 +68,7 @@ class FeederComponent_TestCase(JCLComponent_TestCase):
|
|||||||
self.comp.handle_tick = end_run
|
self.comp.handle_tick = end_run
|
||||||
self.comp.stream = MockStream()
|
self.comp.stream = MockStream()
|
||||||
self.comp.stream_class = MockStream
|
self.comp.stream_class = MockStream
|
||||||
|
self.comp.disable_signals()
|
||||||
run_thread = threading.Thread(target=self.comp.run,
|
run_thread = threading.Thread(target=self.comp.run,
|
||||||
name="run_thread")
|
name="run_thread")
|
||||||
run_thread.start()
|
run_thread.start()
|
||||||
|
|||||||
Reference in New Issue
Block a user