Remove relay fixes

- clear subscriptions tracked when closing relay
- join and pop queue_threads when removing relay
This commit is contained in:
vic
2023-11-04 22:20:39 -04:00
parent cf97450201
commit 4b88a62626
2 changed files with 14 additions and 7 deletions

View File

@@ -68,8 +68,10 @@ class Relay:
)
def close(self):
self.ws.close()
self.shutdown = True
self.ws.close()
with self.lock:
self.subscriptions = {}
def check_reconnect(self):
try:

View File

@@ -27,10 +27,15 @@ class RelayManager:
self.relays[url] = relay
def remove_relay(self, url: str):
if url in self.relays:
self.relays[url].close()
self.relays.pop(url)
self.relays.pop(url, None)
if url in self.threads:
self.threads[url].join(timeout=1)
self.threads.pop(url)
self.threads.pop(url, None)
if url in self.queue_threads:
self.queue_threads[url].join(timeout=1)
self.queue_threads.pop(url, None)
def add_subscription(self, id: str, filters: Filters):
for relay in self.relays.values():