0
0
mirror of https://github.com/bec-project/bec_widgets.git synced 2025-07-14 03:31:50 +02:00

fix(rpc/client_utils): close clean up policy for BECFigure

This commit is contained in:
2024-04-23 14:41:01 +02:00
parent a1c369de9b
commit 9602085f82
5 changed files with 26 additions and 3 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

View File

@ -121,7 +121,10 @@ class BECFigureClientMixin:
"""
if self._process is None:
return
self._run_rpc("close", (), wait_for_rpc_response=False)
if self.gui_is_alive():
self._run_rpc("close", (), wait_for_rpc_response=True)
else:
self._run_rpc("close", (), wait_for_rpc_response=False)
self._process.terminate()
self._process_output_processing_thread.join()
self._process = None
@ -212,7 +215,7 @@ class RPCBase:
parameter={"args": args, "kwargs": kwargs, "gui_id": self._gui_id},
metadata={"request_id": request_id},
)
# print(f"RPCBase: {rpc_msg}")
# pylint: disable=protected-access
receiver = self._root._gui_id
self._client.connector.set_and_publish(MessageEndpoints.gui_instructions(receiver), rpc_msg)

View File

@ -1,4 +1,6 @@
import inspect
import threading
import time
from bec_lib import MessageEndpoints, messages
from qtpy.QtCore import QTimer
@ -109,17 +111,25 @@ class BECWidgetsCLIServer:
def shutdown(self):
self._shutdown_event = True
self._heartbeat_timer.stop()
self.client.shutdown()
if __name__ == "__main__": # pragma: no cover
import argparse
import sys
from qtpy.QtCore import QSize
from qtpy.QtGui import QIcon
from qtpy.QtWidgets import QApplication, QMainWindow
app = QApplication(sys.argv)
app.setApplicationName("BEC Figure")
icon = QIcon()
icon.addFile("bec_widgets_icon.png", size=QSize(48, 48))
app.setWindowIcon(icon)
win = QMainWindow()
win.setWindowTitle("BEC Widgets")
parser = argparse.ArgumentParser(description="BEC Widgets CLI Server")
parser.add_argument("--id", type=str, help="The id of the server")

View File

@ -127,3 +127,7 @@ class BECConnector:
return self.config.model_dump()
else:
return self.config
def closeEvent(self, event):
self.client.shutdown()
super().closeEvent(event)

View File

@ -48,5 +48,11 @@ if __name__ == "__main__":
version=__version__,
packages=find_packages(),
include_package_data=True,
package_data={"": ["*.ui", "*.yaml"]},
package_data={
"": [
"*.ui",
"*.yaml",
"*.png",
]
},
)