From fc64d8d1a8f3ad5cf55e676be52ee14209f15e91 Mon Sep 17 00:00:00 2001 From: Jack Robison Date: Thu, 21 Feb 2019 17:44:02 -0500 Subject: [PATCH] fix slow ping queue shutdown --- lbrynet/dht/protocol/protocol.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lbrynet/dht/protocol/protocol.py b/lbrynet/dht/protocol/protocol.py index 64198f14d..c0bdf6a2d 100644 --- a/lbrynet/dht/protocol/protocol.py +++ b/lbrynet/dht/protocol/protocol.py @@ -190,7 +190,7 @@ class PingQueue: self._pending_contacts: typing.Dict['KademliaPeer', float] = {} self._process_task: asyncio.Task = None self._running = False - self._running_pings: typing.List[asyncio.Task] = [] + self._running_pings: typing.Set[asyncio.Task] = set() @property def running(self): @@ -215,7 +215,7 @@ class PingQueue: task = self._loop.create_task(ping_task()) task.add_done_callback(lambda _: None if task not in self._running_pings else self._running_pings.remove(task)) - self._running_pings.append(task) + self._running_pings.add(task) async def _process(self): # send up to 1 ping per second while True: @@ -241,7 +241,7 @@ class PingQueue: self._process_task.cancel() self._process_task = None while self._running_pings: - self._running_pings[0].cancel() + self._running_pings.pop().cancel() class KademliaProtocol(DatagramProtocol):