MCPcopy Index your code
hub / github.com/python/cpython / accept

Method accept

Lib/asyncio/windows_events.py:549–575  ·  view source on GitHub ↗
(self, listener)

Source from the content-addressed store, hash-verified

547 return self._register(ov, conn, self.finish_socket_func)
548
549 def accept(self, listener):
550 self._register_with_iocp(listener)
551 conn = self._get_accept_socket(listener.family)
552 ov = _overlapped.Overlapped(NULL)
553 ov.AcceptEx(listener.fileno(), conn.fileno())
554
555 def finish_accept(trans, key, ov):
556 ov.getresult()
557 # Use SO_UPDATE_ACCEPT_CONTEXT so getsockname() etc work.
558 buf = struct.pack('@P', listener.fileno())
559 conn.setsockopt(socket.SOL_SOCKET,
560 _overlapped.SO_UPDATE_ACCEPT_CONTEXT, buf)
561 conn.settimeout(listener.gettimeout())
562 return conn, conn.getpeername()
563
564 async def accept_coro(future, conn):
565 # Coroutine closing the accept socket if the future is cancelled
566 try:
567 await future
568 except exceptions.CancelledError:
569 conn.close()
570 raise
571
572 future = self._register(ov, listener, finish_accept)
573 coro = accept_coro(future, conn)
574 tasks.ensure_future(coro, loop=self._loop)
575 return future
576
577 def connect(self, conn, address):
578 if conn.type == socket.SOCK_DGRAM:

Callers 4

_accept_connectionMethod · 0.45
_sock_acceptMethod · 0.45
sock_acceptMethod · 0.45
loopMethod · 0.45

Calls 4

_register_with_iocpMethod · 0.95
_get_accept_socketMethod · 0.95
_registerMethod · 0.95
filenoMethod · 0.45

Tested by

no test coverage detected