def __init__(self):
self._poller_name = 'IOCP'
self.iocp = win32file.CreateIoCompletionPort(win32file.INVALID_HANDLE_VALUE,
None, 0, 0)
self._timeouts = []
self.async_poller = _AsyncPoller(self)
self.cmd_rsock, self.cmd_wsock = _AsyncPoller._socketpair()
self.cmd_wsock.setblocking(0)
self.cmd_rsock = AsyncSocket(self.cmd_rsock)
self.cmd_rsock._notifier = self
self.cmd_rsock._register()
self.cmd_rsock_buf = win32file.AllocateReadBuffer(128)
self.cmd_rsock._read_overlap.object = self.cmd_rsock_recv
err, n = win32file.WSARecv(self.cmd_rsock._fileno, self.cmd_rsock_buf,
self.cmd_rsock._read_overlap, 0)
if err and err != winerror.ERROR_IO_PENDING:
logger.warning('WSARecv error: %s', err)
self._lock = threading.RLock()
self._polling = False
评论列表
文章目录