Browse Source

Simplify running loop in DHT and Averager

Aleksandr Borzunov 2 years ago
parent
commit
3ceb3e823f
2 changed files with 4 additions and 16 deletions
  1. 2 8
      hivemind/averaging/averager.py
  2. 2 8
      hivemind/dht/dht.py

+ 2 - 8
hivemind/averaging/averager.py

@@ -305,18 +305,12 @@ class DecentralizedAverager(mp.Process, ServicerBase):
             self._ready.set_result(None)
 
             while True:
-                try:
-                    await asyncio.wait_for(pipe_semaphore.acquire(), timeout=self.request_timeout)
-                except asyncio.TimeoutError:
-                    pass
-                if not self._inner_pipe.poll():
-                    continue
+                await pipe_semaphore.acquire()
                 try:
                     method, args, kwargs = self._inner_pipe.recv()
                 except (OSError, ConnectionError, RuntimeError) as e:
                     logger.exception(e)
-                    await asyncio.sleep(self.request_timeout)
-                    continue
+                    break
                 task = asyncio.create_task(getattr(self, method)(*args, **kwargs))
                 if method == "_shutdown":
                     await task

+ 2 - 8
hivemind/dht/dht.py

@@ -119,18 +119,12 @@ class DHT(mp.Process):
             self._ready.set_result(None)
 
             while True:
-                try:
-                    await asyncio.wait_for(pipe_semaphore.acquire(), timeout=self._node.protocol.wait_timeout)
-                except asyncio.TimeoutError:
-                    pass
-                if not self._inner_pipe.poll():
-                    continue
+                await pipe_semaphore.acquire()
                 try:
                     method, args, kwargs = self._inner_pipe.recv()
                 except (OSError, ConnectionError, RuntimeError) as e:
                     logger.exception(e)
-                    await asyncio.sleep(self._node.protocol.wait_timeout)
-                    continue
+                    break
                 task = asyncio.create_task(getattr(self, method)(*args, **kwargs))
                 if method == "_shutdown":
                     await task