|
@@ -241,7 +241,12 @@ class DecentralizedAverager(mp.Process, ServicerBase):
|
|
|
self._ready.set_result(None)
|
|
|
|
|
|
while True:
|
|
|
- method, args, kwargs = await loop.run_in_executor(pipe_awaiter, self._inner_pipe.recv)
|
|
|
+ try:
|
|
|
+ method, args, kwargs = await loop.run_in_executor(pipe_awaiter, self._inner_pipe.recv)
|
|
|
+ except (OSError, BrokenPipeError) as e:
|
|
|
+ logger.exception(e)
|
|
|
+ await asyncio.sleep(self._matchmaking.request_timeout)
|
|
|
+ continue
|
|
|
task = asyncio.create_task(getattr(self, method)(*args, **kwargs))
|
|
|
if method == "_shutdown":
|
|
|
await task
|