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

fix(client_utils): added close rpc command to shutdown of gui from bec_ipython_client

This commit is contained in:
2024-06-19 16:36:05 +02:00
parent 71ec61e27b
commit e5a7d47b21
2 changed files with 10 additions and 3 deletions

View File

@ -173,8 +173,15 @@ class BECGuiClientMixin:
def close(self) -> None:
"""
Close the figure.
Close the gui window.
"""
if self._process is None:
return
self._run_rpc("close", (), wait_for_rpc_response=False)
while self.gui_is_alive():
time.sleep(0.2)
self._client.shutdown()
if self._process:
self._process.terminate()

View File

@ -40,7 +40,7 @@ class BECWidgetsCLIServer:
self._shutdown_event = False
self._heartbeat_timer = QTimer()
self._heartbeat_timer.timeout.connect(self.emit_heartbeat)
self._heartbeat_timer.start(200) # Emit heartbeat every 1 seconds
self._heartbeat_timer.start(200)
def on_rpc_update(self, msg: dict, metadata: dict):
request_id = metadata.get("request_id")
@ -105,7 +105,7 @@ class BECWidgetsCLIServer:
self.client.connector.set(
MessageEndpoints.gui_heartbeat(self.gui_id),
messages.StatusMessage(name=self.gui_id, status=1, info={}),
expire=10,
expire=1,
)
def shutdown(self): # TODO not sure if needed when cleanup is done at level of BECConnector