Merge "Register cleanup hooks for the object change handlers only when needed"
This commit is contained in:
commit
630bdb92fb
|
@ -36,6 +36,12 @@ from neutron.objects import subnet
|
||||||
LOG = logging.getLogger(__name__)
|
LOG = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
def _setup_change_handlers_cleanup():
|
||||||
|
atexit.register(_ObjectChangeHandler.clean_up)
|
||||||
|
signal.signal(signal.SIGINT, _ObjectChangeHandler.clean_up)
|
||||||
|
signal.signal(signal.SIGTERM, _ObjectChangeHandler.clean_up)
|
||||||
|
|
||||||
|
|
||||||
class _ObjectChangeHandler(object):
|
class _ObjectChangeHandler(object):
|
||||||
MAX_IDLE_FOR = 1
|
MAX_IDLE_FOR = 1
|
||||||
_TO_CLEAN = weakref.WeakSet()
|
_TO_CLEAN = weakref.WeakSet()
|
||||||
|
@ -151,6 +157,7 @@ class OVOServerRpcInterface(object):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self._rpc_pusher = resources_rpc.ResourcesPushRpcApi()
|
self._rpc_pusher = resources_rpc.ResourcesPushRpcApi()
|
||||||
self._setup_change_handlers()
|
self._setup_change_handlers()
|
||||||
|
_setup_change_handlers_cleanup()
|
||||||
LOG.debug("ML2 OVO RPC backend initialized.")
|
LOG.debug("ML2 OVO RPC backend initialized.")
|
||||||
|
|
||||||
def _setup_change_handlers(self):
|
def _setup_change_handlers(self):
|
||||||
|
@ -172,8 +179,3 @@ class OVOServerRpcInterface(object):
|
||||||
"""Wait for all handlers to finish processing async events."""
|
"""Wait for all handlers to finish processing async events."""
|
||||||
for handler in self._resource_handlers.values():
|
for handler in self._resource_handlers.values():
|
||||||
handler.wait()
|
handler.wait()
|
||||||
|
|
||||||
|
|
||||||
atexit.register(_ObjectChangeHandler.clean_up)
|
|
||||||
signal.signal(signal.SIGINT, _ObjectChangeHandler.clean_up)
|
|
||||||
signal.signal(signal.SIGTERM, _ObjectChangeHandler.clean_up)
|
|
||||||
|
|
Loading…
Reference in New Issue