fix(cleanup): prevent double cleanup by tracking object destruction state

This commit is contained in:
2025-04-27 13:45:58 +02:00
parent 5e4965fe1f
commit fde912005d
2 changed files with 9 additions and 2 deletions
+6 -1
View File
@@ -99,6 +99,9 @@ class BECConnector:
self, QObject
), "BECConnector must be used with a QObject or any qt related class."
# flag to check if the object was destroyed and its cleanup was called
self._destroyed = False
# BEC related connections
self.bec_dispatcher = BECDispatcher(client=client)
self.client = self.bec_dispatcher.client if client is None else client
@@ -173,7 +176,9 @@ class BECConnector:
if not hasattr(self, "cleanup"):
return
try:
self.cleanup()
if not self._destroyed:
self.cleanup()
self._destroyed = True
except Exception:
content = traceback.format_exc()
logger.info(
+3 -1
View File
@@ -112,6 +112,8 @@ class BECWidget(BECConnector):
def closeEvent(self, event):
"""Wrap the close even to ensure the rpc_register is cleaned up."""
try:
self.cleanup()
if not self._destroyed:
self.cleanup()
self._destroyed = True
finally:
super().closeEvent(event) # pylint: disable=no-member