Merge "Register cleanup hooks for the object change handlers only when needed"

This commit is contained in:
Zuul 2022-01-16 21:59:22 +00:00 committed by Gerrit Code Review
commit 630bdb92fb
1 changed files with 7 additions and 5 deletions

View File

@ -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)