55if sys .platform != 'win32' : # pragma: no cover
66 raise ImportError ('win32 only' )
77
8- import _overlapped
8+ # import _overlapped; XXX: RUSTPYTHON
99import _winapi
1010import errno
1111from functools import partial
@@ -132,6 +132,7 @@ def _unregister_wait_cb(self, fut):
132132 self ._ov = None
133133
134134 def _unregister_wait (self ):
135+ import _overlapped
135136 if not self ._registered :
136137 return
137138 self ._registered = False
@@ -194,6 +195,7 @@ def set_exception(self, exception):
194195
195196class _WaitHandleFuture (_BaseWaitHandleFuture ):
196197 def __init__ (self , ov , handle , wait_handle , proactor , * , loop = None ):
198+ import _overlapped # XXX: RUSTPYTHON
197199 super ().__init__ (ov , handle , wait_handle , loop = loop )
198200 self ._proactor = proactor
199201 self ._unregister_proactor = True
@@ -219,6 +221,7 @@ def _unregister_wait_cb(self, fut):
219221 super ()._unregister_wait_cb (fut )
220222
221223 def _unregister_wait (self ):
224+ import _overlapped # XXX: RUSTPYTHON
222225 if not self ._registered :
223226 return
224227 self ._registered = False
@@ -417,6 +420,7 @@ class IocpProactor:
417420 """Proactor implementation using IOCP."""
418421
419422 def __init__ (self , concurrency = INFINITE ):
423+ import _overlapped # XXX: RUSTPYTHON
420424 self ._loop = None
421425 self ._results = []
422426 self ._iocp = _overlapped .CreateIoCompletionPort (
@@ -458,6 +462,7 @@ def _result(self, value):
458462
459463 @staticmethod
460464 def finish_socket_func (trans , key , ov ):
465+ import _overlapped # XXX: RUSTPYTHON
461466 try :
462467 return ov .getresult ()
463468 except OSError as exc :
@@ -469,6 +474,7 @@ def finish_socket_func(trans, key, ov):
469474
470475 @classmethod
471476 def _finish_recvfrom (cls , trans , key , ov , * , empty_result ):
477+ import _overlapped # XXX: RUSTPYTHON
472478 try :
473479 return cls .finish_socket_func (trans , key , ov )
474480 except OSError as exc :
@@ -480,6 +486,7 @@ def _finish_recvfrom(cls, trans, key, ov, *, empty_result):
480486 raise
481487
482488 def recv (self , conn , nbytes , flags = 0 ):
489+ import _overlapped # XXX: RUSTPYTHON
483490 self ._register_with_iocp (conn )
484491 ov = _overlapped .Overlapped (NULL )
485492 try :
@@ -493,6 +500,7 @@ def recv(self, conn, nbytes, flags=0):
493500 return self ._register (ov , conn , self .finish_socket_func )
494501
495502 def recv_into (self , conn , buf , flags = 0 ):
503+ import _overlapped # XXX: RUSTPYTHON
496504 self ._register_with_iocp (conn )
497505 ov = _overlapped .Overlapped (NULL )
498506 try :
@@ -506,6 +514,7 @@ def recv_into(self, conn, buf, flags=0):
506514 return self ._register (ov , conn , self .finish_socket_func )
507515
508516 def recvfrom (self , conn , nbytes , flags = 0 ):
517+ import _overlapped # XXX: RUSTPYTHON
509518 self ._register_with_iocp (conn )
510519 ov = _overlapped .Overlapped (NULL )
511520 try :
@@ -517,6 +526,7 @@ def recvfrom(self, conn, nbytes, flags=0):
517526 empty_result = b'' ))
518527
519528 def recvfrom_into (self , conn , buf , flags = 0 ):
529+ import _overlapped # XXX: RUSTPYTHON
520530 self ._register_with_iocp (conn )
521531 ov = _overlapped .Overlapped (NULL )
522532 try :
@@ -528,6 +538,7 @@ def recvfrom_into(self, conn, buf, flags=0):
528538 empty_result = 0 ))
529539
530540 def sendto (self , conn , buf , flags = 0 , addr = None ):
541+ import _overlapped # XXX: RUSTPYTHON
531542 self ._register_with_iocp (conn )
532543 ov = _overlapped .Overlapped (NULL )
533544
@@ -536,6 +547,7 @@ def sendto(self, conn, buf, flags=0, addr=None):
536547 return self ._register (ov , conn , self .finish_socket_func )
537548
538549 def send (self , conn , buf , flags = 0 ):
550+ import _overlapped # XXX: RUSTPYTHON
539551 self ._register_with_iocp (conn )
540552 ov = _overlapped .Overlapped (NULL )
541553 if isinstance (conn , socket .socket ):
@@ -546,6 +558,7 @@ def send(self, conn, buf, flags=0):
546558 return self ._register (ov , conn , self .finish_socket_func )
547559
548560 def accept (self , listener ):
561+ import _overlapped # XXX: RUSTPYTHON
549562 self ._register_with_iocp (listener )
550563 conn = self ._get_accept_socket (listener .family )
551564 ov = _overlapped .Overlapped (NULL )
@@ -574,6 +587,7 @@ async def accept_coro(future, conn):
574587 return future
575588
576589 def connect (self , conn , address ):
590+ import _overlapped # XXX: RUSTPYTHON
577591 if conn .type == socket .SOCK_DGRAM :
578592 # WSAConnect will complete immediately for UDP sockets so we don't
579593 # need to register any IOCP operation
@@ -605,6 +619,7 @@ def finish_connect(trans, key, ov):
605619 return self ._register (ov , conn , finish_connect )
606620
607621 def sendfile (self , sock , file , offset , count ):
622+ import _overlapped # XXX: RUSTPYTHON
608623 self ._register_with_iocp (sock )
609624 ov = _overlapped .Overlapped (NULL )
610625 offset_low = offset & 0xffff_ffff
@@ -617,6 +632,7 @@ def sendfile(self, sock, file, offset, count):
617632 return self ._register (ov , sock , self .finish_socket_func )
618633
619634 def accept_pipe (self , pipe ):
635+ import _overlapped # XXX: RUSTPYTHON
620636 self ._register_with_iocp (pipe )
621637 ov = _overlapped .Overlapped (NULL )
622638 connected = ov .ConnectNamedPipe (pipe .fileno ())
@@ -634,6 +650,7 @@ def finish_accept_pipe(trans, key, ov):
634650 return self ._register (ov , pipe , finish_accept_pipe )
635651
636652 async def connect_pipe (self , address ):
653+ import _overlapped # XXX: RUSTPYTHON
637654 delay = CONNECT_PIPE_INIT_DELAY
638655 while True :
639656 # Unfortunately there is no way to do an overlapped connect to
@@ -668,6 +685,7 @@ def _wait_cancel(self, event, done_callback):
668685 return fut
669686
670687 def _wait_for_handle (self , handle , timeout , _is_cancel ):
688+ import _overlapped # XXX: RUSTPYTHON
671689 self ._check_closed ()
672690
673691 if timeout is None :
@@ -702,6 +720,7 @@ def finish_wait_for_handle(trans, key, ov):
702720 return f
703721
704722 def _register_with_iocp (self , obj ):
723+ import _overlapped # XXX: RUSTPYTHON
705724 # To get notifications of finished ops on this objects sent to the
706725 # completion port, were must register the handle.
707726 if obj not in self ._registered :
@@ -759,6 +778,7 @@ def _get_accept_socket(self, family):
759778 return s
760779
761780 def _poll (self , timeout = None ):
781+ import _overlapped # XXX: RUSTPYTHON
762782 if timeout is None :
763783 ms = INFINITE
764784 elif timeout < 0 :
0 commit comments