From 94861a3a087bbdb2277be611111d53f44f87d8a2 Mon Sep 17 00:00:00 2001 From: Nico Alt <nicoalt@posteo.org> Date: Sun, 12 Apr 2020 12:00:00 +0000 Subject: [PATCH] Make signal ids stable This commit makes signal ids stable by always incrementing the id number. --- briar_wrapper/models/socket_listener.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/briar_wrapper/models/socket_listener.py b/briar_wrapper/models/socket_listener.py index 8a4bacf..64ec519 100644 --- a/briar_wrapper/models/socket_listener.py +++ b/briar_wrapper/models/socket_listener.py @@ -16,19 +16,24 @@ class SocketListener(): # pylint: disable=too-few-public-methods def __init__(self, api): self._api = api - self._signals = list() + self._signals = dict() self._signals_lock = Lock() + self._highest_signal_id = -1 self._start_websocket_thread() def connect(self, event, callback): self._signals_lock.acquire() - # TODO: Signal ID should be stable after disconnects - signal_id = len(self._signals) - self._signals.append({ + signal_id = self._add_signal(event, callback) + self._signals_lock.release() + return signal_id + + def _add_signal(self, event, callback): + self._highest_signal_id += 1 + signal_id = self._highest_signal_id + self._signals[signal_id] = { "event": event, "callback": callback - }) - self._signals_lock.release() + } return signal_id def _start_websocket_thread(self): -- GitLab