def _monitor_disconnects(self):
"""Monitors the client socket for disconnects
"""
yield from self._monitor_sock.recv_multipart()
self._sock.disable_monitor()
self._monitor_sock.disconnect(self._monitor_fd)
self._monitor_sock.close(linger=0)
self._monitor_sock = None
self._sock.disconnect(self._url)
self._ready_event.clear()
LOGGER.debug("monitor socket received disconnect event")
for future in self._futures.future_values():
future.set_result(FutureError())
tasks = list(asyncio.Task.all_tasks(self._event_loop))
for task in tasks:
task.cancel()
self._event_loop.stop()
self._send_queue = None
self._recv_queue = None
评论列表
文章目录