address link2xt feedback

This commit is contained in:
holger krekel
2025-11-30 14:29:13 +01:00
parent 00a6f41441
commit 5542dcfa0a

View File

@@ -20,6 +20,10 @@ class JsonRpcError(Exception):
"""JSON-RPC error."""
class RpcShutdownError(JsonRpcError):
"""Raised in RPC methods if the connection to server is closing."""
class RpcMethod:
"""RPC method."""
@@ -47,8 +51,8 @@ class RpcMethod:
def rpc_future():
"""Wait for the request to receive a result."""
response = queue.get()
if response is RpcShutdownError:
raise RpcShutdownError(f"no response for {request_id}/{self.name} but rpc is shutting down")
if response is None:
raise RpcShutdownError(f"no response for {request_id}/{self.name} while rpc is shutting down")
if "error" in response:
raise JsonRpcError(response["error"])
return response.get("result", None)
@@ -56,10 +60,6 @@ class RpcMethod:
return rpc_future
class RpcShutdownError(Exception):
"""Raised in RPC methods if the connection to server is closing."""
class BaseRpc:
"""Base Rpc class which requires 'connect_to_server' and 'disconnect_from_server' methods
from subclasses to work concretely."""
@@ -124,7 +124,7 @@ class BaseRpc:
# terminate pending rpc requests because no responses can arrive anymore
for queue in self.request_results.values():
queue.put(RpcShutdownError)
queue.put(None)
def writer_loop(self) -> None:
"""Writer loop ensuring only a single thread writes requests."""