From: Christian Heller Date: Mon, 15 Sep 2025 20:55:12 +0000 (+0200) Subject: Eliminate race condition of ClientEvents sent before NewClientEvent initialized Clien... X-Git-Url: https://plomlompom.com/repos/todo?a=commitdiff_plain;h=9314c88b4af32047a679117da5c5418d723bae88;p=ircplom Eliminate race condition of ClientEvents sent before NewClientEvent initialized ClientsDb entry. --- diff --git a/ircplom/client.py b/ircplom/client.py index ca85113..8e8e760 100644 --- a/ircplom/client.py +++ b/ircplom/client.py @@ -733,9 +733,8 @@ class Client(ABC, ClientQueueMixin): setattr(self.db, k, getattr(conn_setup, k)) if self.db.port <= 0: self.db.port = PORT_SSL - self._start_connecting() - def _start_connecting(self) -> None: + def start_connecting(self) -> None: def connect(self) -> None: try: @@ -904,6 +903,7 @@ class NewClientEvent(AffectiveEvent): def affect(self, target: ClientsDb) -> None: target[self.payload.client_id] = self.payload + self.payload.start_connecting() @dataclass diff --git a/ircplom/client_tui.py b/ircplom/client_tui.py index 6c35ccd..41887c6 100644 --- a/ircplom/client_tui.py +++ b/ircplom/client_tui.py @@ -488,7 +488,7 @@ class ClientKnowingTui(Client): self._log('not re-connecting since already connected', scope=LogScope.SAME, alert=True) return - self._start_connecting() + self.start_connecting() def _log(self, msg: str, scope: Optional[LogScope] = None, **kwargs ) -> None: