HEX
Server: Apache
System: Linux bd12.noc223.com 4.18.0-553.121.1.lve.el8.x86_64 #1 SMP Thu Apr 30 16:40:41 UTC 2026 x86_64
User: handcraf (1693)
PHP: 8.1.28
Disabled: NONE
Upload Files
File: //opt/alt/python312/lib64/python3.12/asyncio/__pycache__/windows_events.cpython-312.opt-2.pyc
�

�h�e�}���	ddlZejdk7red��ddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlm
Z
ddlmZddlmZddlmZdd	lmZdd
lmZddlmZddlmZdd
lmZdZej0Zej2ZdZdZdZdZGd�dej<�ZGd�dej<�Z Gd�de �Z!Gd�de �Z"Gd�de#�Z$Gd�dejJ�Z&Gd�d ejN�Z(Gd!�d"�Z)Gd#�d$ejT�Z+e&Z,Gd%�d&e
jZ�Z.Gd'�d(e
jZ�Z/e/Z0y))�N�win32z
win32 only�)�events)�base_subprocess)�futures)�
exceptions)�proactor_events)�selector_events)�tasks)�
windows_utils)�logger)�SelectorEventLoop�ProactorEventLoop�IocpProactor�DefaultEventLoopPolicy�WindowsSelectorEventLoopPolicy�WindowsProactorEventLoopPolicyi�i�g����MbP?g�������?c�V��eZdZ	dd��fd�
Z�fd�Zd�Zd	�fd�	Z�fd�Z�fd�Z�xZ	S)
�_OverlappedFutureN��loopc�f��t�|�|��|jr
|jd=||_y�Nr���)�super�__init__�_source_traceback�_ov)�self�ovr�	__class__s   ��=/opt/alt/python312/lib64/python3.12/asyncio/windows_events.pyrz_OverlappedFuture.__init__6s1���
���d��#��!�!��&�&�r�*����c����t�|��}|j�H|jjrdnd}|j	dd|�d|jj
d�d��|S)N�pending�	completedrzoverlapped=<z, �#x�>)r�
_repr_inforr%�insert�address�r�info�stater!s   �r"r)z_OverlappedFuture._repr_info<s\����w�!�#���8�8��!%���!1�!1�I�{�E��K�K��\�%���4�8�8�3C�3C�B�2G�q�I�J��r#c��|j�y	|jj�d|_y#t$rM}d||d�}|jr|j|d<|jj|�Yd}~d|_yd}~wwxYw)Nz&Cancelling an overlapped future failed��message�	exception�future�source_traceback)r�cancel�OSErrorr�_loop�call_exception_handler)r�exc�contexts   r"�_cancel_overlappedz$_OverlappedFuture._cancel_overlappedCs����8�8���
	7��H�H�O�O�������	7�C� ���G�
�%�%�.2�.D�.D��*�+��J�J�-�-�g�6�6�����	7�s�1�	B�<B�Bc�D��|j�t�|�	|��S�N)�msg)r;rr5�rr>r!s  �r"r5z_OverlappedFuture.cancelSs ������!��w�~�#�~�&�&r#c�D��t�|�|�|j�y�N)r�
set_exceptionr;�rr2r!s  �r"rBz_OverlappedFuture.set_exceptionWs���
���i�(����!r#c�2��t�|�|�d|_yrA)r�
set_resultr�r�resultr!s  �r"rEz_OverlappedFuture.set_result[s���
���6�"���r#rA)
�__name__�
__module__�__qualname__rr)r;r5rBrE�
__classcell__�r!s@r"rr0s0����
$(���� '�"��r#rc�b��eZdZ	dd��fd�
Zd�Z�fd�Zd�Zd�Zd�fd�	Z�fd	�Z	�fd
�Z
�xZS)�_BaseWaitHandleFutureNrc���t�|�|��|jr
|jd=||_||_||_d|_y)NrrT)rrrr�_handle�_wait_handle�_registered)rr �handle�wait_handlerr!s     �r"rz_BaseWaitHandleFuture.__init__csL���
���d��#��!�!��&�&�r�*�������'��� ��r#c�d�tj|jd�tjk(S�Nr)�_winapi�WaitForSingleObjectrP�
WAIT_OBJECT_0�rs r"�_pollz_BaseWaitHandleFuture._pollqs)���+�+�D�L�L�!�<��%�%�&�	'r#c���t�|��}|jd|jd���|j�%|j	�rdnd}|j|�|j
�|jd|j
d���|S)Nzhandle=r'�signaled�waitingzwait_handle=)rr)�appendrPr[rQr,s   �r"r)z _BaseWaitHandleFuture._repr_infovs|����w�!�#�����g�d�l�l�2�.�/�0��<�<�#�"&�*�*�,�J�I�E��K�K������(��K�K�,�t�'8�'8��&<�=�>��r#c��d|_yrA)r)r�futs  r"�_unregister_wait_cbz)_BaseWaitHandleFuture._unregister_wait_cb�s����r#c��|jsyd|_|j}d|_	tj|�|jd�y#t$rh}|j
tjk7rAd||d�}|jr|j|d<|jj|�Yd}~yYd}~�~d}~wwxYw�NFz$Failed to unregister the wait handler0r4)rRrQ�_overlapped�UnregisterWaitr6�winerror�ERROR_IO_PENDINGrr7r8rb�rrTr9r:s    r"�_unregister_waitz&_BaseWaitHandleFuture._unregister_wait�s������� ����'�'�� ���	��&�&�{�3�	
� � ��&���
	��|�|�{�;�;�;�E�!$�"���
�)�)�26�2H�2H�G�.�/��
�
�1�1�'�:��<��
	�s�A�	C�AB<�<Cc�D��|j�t�|�	|��Sr=)rjrr5r?s  �r"r5z_BaseWaitHandleFuture.cancel�s ��������w�~�#�~�&�&r#c�D��|j�t�|�	|�yrA)rjrrBrCs  �r"rBz#_BaseWaitHandleFuture.set_exception�s�������
���i�(r#c�D��|j�t�|�	|�yrA)rjrrErFs  �r"rEz _BaseWaitHandleFuture.set_result�s�������
���6�"r#rA)rHrIrJrr[r)rbrjr5rBrErKrLs@r"rNrN`s6���<�8<� �'�
��
'�0'�)�#�#r#rNc�@��eZdZ	dd��fd�
Zd�Z�fd�Z�fd�Z�xZS)�_WaitCancelFutureNrc�:��t�|�||||��d|_y)Nr)rr�_done_callback)rr �eventrTrr!s     �r"rz_WaitCancelFuture.__init__�s!���
����U�K�d��;�"��r#c��td��)Nz'_WaitCancelFuture must not be cancelled)�RuntimeErrorrZs r"r5z_WaitCancelFuture.cancel�s���D�E�Er#c�`��t�|�|�|j�|j|�yyrA)rrErqrFs  �r"rEz_WaitCancelFuture.set_result�s/���
���6�"����*�����%�+r#c�`��t�|�|�|j�|j|�yyrA)rrBrqrCs  �r"rBz_WaitCancelFuture.set_exception�s/���
���i�(����*�����%�+r#)rHrIrJrr5rErBrKrLs@r"roro�s'����8<�#�
F�&�
&�&r#roc�4��eZdZdd��fd�
Z�fd�Zd�Z�xZS)�_WaitHandleFutureNrc���t�|�||||��||_d|_t	j
dddd�|_d|_y)NrTF)rr�	_proactor�_unregister_proactorre�CreateEvent�_event�
_event_fut)rr rSrT�proactorrr!s      �r"rz_WaitHandleFuture.__init__�sG���
����V�[�t��<�!���$(��!�!�-�-�d�D�%��F�����r#c����|j�-tj|j�d|_d|_|jj|j�d|_t�|�!|�yrA)	r}rW�CloseHandler~rz�_unregisterrrrb)rrar!s  �r"rbz%_WaitHandleFuture._unregister_wait_cb�sY����;�;�"�������,��D�K�"�D�O�	
���"�"�4�8�8�,����
��#�C�(r#c���|jsyd|_|j}d|_	tj||j�|jj|j|j�|_y#t
$rh}|jtjk7rAd||d�}|jr|j|d<|jj|�Yd}~yYd}~��d}~wwxYwrd)rRrQre�UnregisterWaitExr}r6rgrhrr7r8rz�_wait_cancelrbr~ris    r"rjz"_WaitHandleFuture._unregister_wait�s������� ����'�'�� ���	��(�(��d�k�k�B��.�.�5�5�d�k�k�6:�6N�6N�P�����
	��|�|�{�;�;�;�E�!$�"���
�)�)�26�2H�2H�G�.�/��
�
�1�1�'�:��<��
	�s� A?�?	C0�AC+�+C0)rHrIrJrrbrjrKrLs@r"rxrx�s���BF��)�$Pr#rxc�0�eZdZ	d�Zd�Zd�Zd�Zd�ZeZy)�
PipeServerc��||_tj�|_d|_d|_|j
d�|_y�NT)�_address�weakref�WeakSet�_free_instances�_pipe�_accept_pipe_future�_server_pipe_handle)rr+s  r"rzPipeServer.__init__�s;����
�&���0�����
�#'�� ��-�-�d�3��
r#c�L�|j|jd�c}|_|S�NF)r�r�)r�tmps  r"�_get_unconnected_pipez PipeServer._get_unconnected_pipes%��
�*�*�d�&>�&>�u�&E���T�Z��
r#c
�,�|j�rytjtjz}|r|tjz}tj
|j|tjtjztjztjtjtjtjtj�}tj|�}|j j#|�|SrA)�closedrW�PIPE_ACCESS_DUPLEX�FILE_FLAG_OVERLAPPED�FILE_FLAG_FIRST_PIPE_INSTANCE�CreateNamedPiper��PIPE_TYPE_MESSAGE�PIPE_READMODE_MESSAGE�	PIPE_WAIT�PIPE_UNLIMITED_INSTANCESr�BUFSIZE�NMPWAIT_WAIT_FOREVER�NULL�
PipeHandler��add)r�first�flags�h�pipes     r"r�zPipeServer._server_pipe_handle
s����;�;�=���*�*�W�-I�-I�I����W�:�:�:�E��#�#��M�M�5��%�%��(E�(E�E����
��,�,��!�!�=�#8�#8��(�(�'�,�,�

8���'�'��*����� � ��&��r#c��|jduSrA)r�rZs r"r�zPipeServer.closeds���
�
��%�&r#c�
�|j�!|jj�d|_|j�J|jD]}|j	��d|_d|_|jj
�yyrA)r�r5r�r��closer��clear)rr�s  r"r�zPipeServer.close"su���#�#�/��$�$�+�+�-�'+�D�$��=�=�$��,�,�
���
�
��
��D�J� �D�M�� � �&�&�(�%r#N)	rHrIrJrr�r�r�r��__del__�r#r"r�r��s'���4���$'�
)��Gr#r�c��eZdZy)�_WindowsSelectorEventLoopN)rHrIrJr�r#r"r�r�1s��1r#r�c�B��eZdZ	d�fd�	Z�fd�Zd�Zd�Z	dd�Z�xZS)rc�<��|�
t�}t�|�	|�yrA)rrr)rrr!s  �r"rzProactorEventLoop.__init__8s�����#�~�H�
����"r#c����	|j|j�t�|�
�|j�U|jj
}|jj
�|�|jj|�d|_yy#|j�U|jj
}|jj
�|�|jj|�d|_wwxYwrA)	�	call_soon�_loop_self_readingr�run_forever�_self_reading_futurerr5rzr�)rr r!s  �r"r�zProactorEventLoop.run_forever=s����	1��N�N�4�2�2�3��G��!��(�(�4��.�.�2�2���)�)�0�0�2��>��N�N�.�.�r�2�,0��)�5��t�(�(�4��.�.�2�2���)�)�0�0�2��>��N�N�.�.�r�2�,0��)�5�s�)B�A#C1c��K�|jj|�}|�d{���}|�}|j||d|i��}||fS7�%�w)N�addr��extra)rz�connect_pipe�_make_duplex_pipe_transport)r�protocol_factoryr+�fr��protocol�transs       r"�create_pipe_connectionz(ProactorEventLoop.create_pipe_connectionPsZ�����N�N�'�'��0���w��#�%���0�0��x�8>��7H�1�J���h���	�s�!A�A	�&Ac��f�����K�t���d�����fd�	��j���gS�w)Nc�J��d}	|ri|j�}�jj|��j�r|j	�y��}�j||d�i���j
�}|�y�jj|�}|�_	|j��y#t$r9|r#|j�dk7r|j	��j��Yyt$rz}|r9|j�dk7r&�jd||d��|j	�n$�j rt#j$d|d���j��Yd}~yd}~wt&j($r|r|j	�YyYywxYw)	Nr�r�rzPipe accept failed)r1r2r�zAccept pipe failed on pipe %rT)�exc_info)rGr��discardr�r�r�r�rz�accept_piper��add_done_callback�BrokenPipeError�filenor�r6r8�_debugr
�warningr�CancelledError)	r�r�r�r9r+�loop_accept_piper�r�servers	    �����r"r�z>ProactorEventLoop.start_serving_pipe.<locals>.loop_accept_pipe[st����D�)
6���8�8�:�D��*�*�2�2�4�8��}�}���
�
���/�1�H��4�4��h�v�w�.?�5�A��3�3�5���<���N�N�.�.�t�4��*./��*��#�#�$4�5��+#�
1��D�K�K�M�R�/��J�J�L����/�0��
1��D�K�K�M�R�/��/�/�#7�%(� $�1��
�J�J�L��[�[��N�N�#B�#'�$�8����/�0�0���,�,�
!���J�J�L��
!�s1�A
B7�/B7�B7�7?F"�8F"�A0E5�5(F"�!F"rA)r�r�)rr�r+r�r�s```@@r"�start_serving_pipez$ProactorEventLoop.start_serving_pipeXs2������G�$��+	6�+	6�Z	
���'�(��x��s�*1c	
��K�|j�}
t||||||||f|
|d�|	��}	|
�d{���|S7�#ttf$r�t$r+|j�|j
��d{���7�wxYw�w)N)�waiterr�)�
create_future�_WindowsSubprocessTransport�
SystemExit�KeyboardInterrupt�
BaseExceptionr��_wait)rr��args�shell�stdin�stdout�stderr�bufsizer��kwargsr��transps            r"�_make_subprocess_transportz,ProactorEventLoop._make_subprocess_transport�s������#�#�%��,�T�8�T�5�-2�F�F�G�7�4:�%�7�06�7��	��L�L��
�
���-�.�	���	��L�L�N��,�,�.� � ��	�s1�'A>�8�6�8�A>�8�;A;�3A6�4A;�;A>rA)	rHrIrJrr�r�r�r�rKrLs@r"rr5s%���<�#�
1�&�1�j04�r#rc���eZdZ	efd�Zd�Zd�Zd�Zdd�Zd�Z	e
d��Zd d	�Zd d
�Z
d d�Zd d�Zd!d
�Zd d�Zd�Zd�Zd�Zd�Zd�Zdd�Zd�Zd�Zd�Zd�Zd�Zd�Zdd�Zd�Zd�Z d�Z!y)"rc��d|_g|_tjtjt
d|�|_i|_tj�|_
g|_tj�|_yrV)
r7�_resultsre�CreateIoCompletionPort�INVALID_HANDLE_VALUEr��_iocp�_cacher�r�rR�
_unregistered�_stopped_serving)r�concurrencys  r"rzIocpProactor.__init__�s_����
���
� �7�7��,�,�d�A�{�D��
����"�?�?�,������ '��� 1��r#c�2�|j�td��y)NzIocpProactor is closed)r�rtrZs r"�
_check_closedzIocpProactor._check_closed�s���:�:���7�8�8�r#c���dt|j�zdt|j�zg}|j�|j	d�d|j
j�ddj|��d�S)Nzoverlapped#=%sz
result#=%sr��<� r()�lenr�r�r�r_r!rH�join)rr-s  r"�__repr__zIocpProactor.__repr__�s_�� �3�t�{�{�#3�3��s�4�=�=�1�1�3���:�:���K�K��!�� �N�N�3�3�S�X�X�d�^�D�Dr#c��||_yrA)r7)rrs  r"�set_loopzIocpProactor.set_loop�s	����
r#Nc�z�|js|j|�|j}g|_	|d}S#d}wxYwrA)r�r[)r�timeoutr�s   r"�selectzIocpProactor.select�s:���}�}��J�J�w���m�m����
�	���C��$�C�s�6�:c�\�|jj�}|j|�|SrA)r7r�rE)r�valueras   r"�_resultzIocpProactor._result�s%���j�j�&�&�(�����u���
r#c���	|j�S#t$rD}|jtjtj
fvrt
|j���d}~wwxYwrA��	getresultr6rgre�ERROR_NETNAME_DELETED�ERROR_OPERATION_ABORTED�ConnectionResetErrorr��r��keyr r9s    r"�finish_socket_funczIocpProactor.finish_socket_func�sY��	��<�<�>�!���	��|�|�� A� A� +� C� C� E�E�*�C�H�H�5�5���	����	A�?A�Ac��|j|�tjt�}	t	|t
j
�r"|j
|j�||�n |j|j�|�|j|||j�S#t$r|jd�cYSwxYw)Nr#)
�_register_with_iocpre�
Overlappedr��
isinstance�socket�WSARecvr��ReadFiler�r��	_registerr�r�conn�nbytesr�r s     r"�recvzIocpProactor.recv�s���� � ��&�
�
#�
#�D�
)��	%��$��
�
�.��
�
�4�;�;�=�&�%�8����D�K�K�M�6�2��~�~�b�$��(?�(?�@�@���	%��<�<��$�$�	%���AB%�%C�Cc��|j|�tjt�}	t	|t
j
�r"|j
|j�||�n |j|j�|�|j|||j�S#t$r|jd�cYSwxYwrV)
rrerr�rr	�WSARecvIntor��ReadFileIntor�r�rr�rr�bufr�r s     r"�	recv_intozIocpProactor.recv_into�s���� � ��&�
�
#�
#�D�
)��	#��$��
�
�.����t�{�{�}�c�5�9�������
�s�3��~�~�b�$��(?�(?�@�@���	#��<�<��?�"�	#�rc��|j|�tjt�}	|j	|j�||�|j|||j�S#t$r|jd�cYSwxYw)N)r#N)
rrerr��WSARecvFromr�r�r�rrr
s     r"�recvfromzIocpProactor.recvfrom�sv��� � ��&�
�
#�
#�D�
)��	-��N�N�4�;�;�=�&�%�8��~�~�b�$��(?�(?�@�@���	-��<�<��,�,�	-�s�!A*�*B�Bc��|j|�tjt�}	|j	|j�||�d�}|j|||�S#t$r|jd�cYSwxYw)N�rNc���	|j�S#t$rD}|jtjtj
fvrt
|j���d}~wwxYwrAr�rs    r"�finish_recvz/IocpProactor.recvfrom_into.<locals>.finish_recvsY��
��|�|�~�%���
��<�<�K�$E�$E�$/�$G�$G�$I�I�.����9�9���
�r)	rrerr��WSARecvFromIntor�r�r�r)rrrr�r rs      r"�
recvfrom_intozIocpProactor.recvfrom_into�sw��� � ��&�
�
#�
#�D�
)��	+����t�{�{�}�c�5�9�	��~�~�b�$��4�4���	+��<�<�	�*�*�	+�s�!A#�#B�?Bc���|j|�tjt�}|j	|j�|||�|j
|||j�SrA)rrerr��	WSASendTor�rr)rrrr�r�r s      r"�sendtozIocpProactor.sendto
sQ��� � ��&�
�
#�
#�D�
)��
���T�[�[�]�C���5��~�~�b�$��(?�(?�@�@r#c�H�|j|�tjt�}t	|t
j
�r"|j
|j�||�n |j|j�|�|j|||j�SrA)rrerr�rr	�WSASendr��	WriteFilerrrs     r"�sendzIocpProactor.sendsq��� � ��&�
�
#�
#�D�
)���d�F�M�M�*��J�J�t�{�{�}�c�5�1��L�L������,��~�~�b�$��(?�(?�@�@r#c�|���|j��|j�j��tjt
�}|j
�j��j����fd�}d�}|j|�|�}||��}tj||j��|S)Nc�,��|j�tjd�j��}�j	t
jtj|��j�j����j�fS)Nz@P)r��struct�packr��
setsockoptr	�
SOL_SOCKETre�SO_UPDATE_ACCEPT_CONTEXT�
settimeout�
gettimeout�getpeername)r�rr rr�listeners    ��r"�
finish_acceptz*IocpProactor.accept.<locals>.finish_accept%sl����L�L�N��+�+�d�H�O�O�$5�6�C��O�O�F�-�-�'�@�@�#�
G��O�O�H�/�/�1�2���)�)�+�+�+r#c��vK�	|�d{���y7�#tj$r|j��wxYw�wrA)rr�r�)r3rs  r"�accept_coroz(IocpProactor.accept.<locals>.accept_coro.s2����
������,�,�
��
�
���
�s �9����9��%6�9r)r�_get_accept_socket�familyrerr��AcceptExr�rr�
ensure_futurer7)rr2r r3r5r3�corors `     @r"�acceptzIocpProactor.accepts����� � ��*��&�&�x���7��
�
#�
#�D�
)��
���H�O�O�%�t�{�{�}�5�	,�	�����H�m�<���6�4�(��
���D�t�z�z�2��
r#c����jtjk(rQtj�j�|�|jj�}|jd�|S|j��	tj�j��j�tj"t$�}|j'�j�|��fd�}|j)|�|�S#t$r?}|jtjk7r��j!�ddk(r�Yd}~��d}~wwxYw)Nrrc���|j��jtjtj
d��SrV)r�r,r	r-re�SO_UPDATE_CONNECT_CONTEXT)r�rr rs   �r"�finish_connectz,IocpProactor.connect.<locals>.finish_connectQs1����L�L�N��O�O�F�-�-�'�A�A�1�
F��Kr#)�typer	�
SOCK_DGRAMre�
WSAConnectr�r7r�rEr�	BindLocalr7r6rg�errno�	WSAEINVAL�getsocknamerr��	ConnectExr)rrr+ra�er r?s `     r"�connectzIocpProactor.connect;s����9�9��)�)�)�
�"�"�4�;�;�=�'�:��*�*�*�*�,�C��N�N�4� ��J�� � ��&�	��!�!�$�+�+�-����=��
#�
#�D�
)��
���T�[�[�]�G�,�	��~�~�b�$��7�7��!�	��z�z�U�_�_�,�����!�!�$��)��*��		�s�.D�	E	�
5E�E	c	�6�|j|�tjt�}|dz}|dz	dz}|j	|j�t
j|j��|||dd�|j|||j�S)Nl��� r)
rrerr��TransmitFiler��msvcrt�
get_osfhandlerr)r�sock�file�offset�countr �
offset_low�offset_highs        r"�sendfilezIocpProactor.sendfileZs���� � ��&�
�
#�
#�D�
)���k�)�
���|�{�2��
������
��,�,�T�[�[�]�;�"�K��q�!�	%�
�~�~�b�$��(?�(?�@�@r#c����|j��tjt�}|j	�j��}|r|j
��S�fd�}|j|�|�S)Nc�(��|j��SrA)r�)r�rr r�s   �r"�finish_accept_pipez4IocpProactor.accept_pipe.<locals>.finish_accept_pipeqs����L�L�N��Kr#)rrerr��ConnectNamedPiper�r�r)rr�r �	connectedrXs `   r"r�zIocpProactor.accept_pipefsf���� � ��&�
�
#�
#�D�
)���'�'����
�6�	���<�<��%�%�	��~�~�b�$�(:�;�;r#c��<K�t}		tj|�}	tj|�S#t$r(}|jtj
k7r�Yd}~nd}~wwxYwt
|dzt�}tj|��d{���7���w)N�)�CONNECT_PIPE_INIT_DELAYre�ConnectPiper6rg�ERROR_PIPE_BUSY�min�CONNECT_PIPE_MAX_DELAYr�sleeprr�)rr+�delayrSr9s     r"r�zIocpProactor.connect_pipews�����'���
�$�0�0��9����'�'��/�/���
��<�<�;�#>�#>�>��?��
��
���	�#9�:�E��+�+�e�$�$�$��s6�B�6�B�	A'�A"�B�"A'�'.B�B�Bc�*�	|j||d�Sr�)�_wait_for_handle)rrSr�s   r"�wait_for_handlezIocpProactor.wait_for_handle�s��	�
�$�$�V�W�e�<�<r#c�:�|j|dd�}||_|Sr�)rerq)rrr�
done_callbackras    r"r�zIocpProactor._wait_cancel�s%���#�#�E�4��6��+����
r#c����|j�|�tj}ntj|dz�}tjt�}tj||j|j|�}|rt||||j���nt|||||j����jr
�jd=�fd�}�|d|f|j|j<�S)N�@�@rrc�$���j�SrA)r[)r�rr r�s   �r"�finish_wait_for_handlez=IocpProactor._wait_for_handle.<locals>.finish_wait_for_handle�s����7�7�9�r#r)r�rW�INFINITE�math�ceilrerr��RegisterWaitWithQueuer�r+ror7rxrr�)	rrSr��
_is_cancel�msr rTrlr�s	        @r"rezIocpProactor._wait_for_handle�s���������?��!�!�B����7�S�=�)�B��
#�
#�D�
)��!�7�7��D�J�J��
�
�B�0���!�"�f�k��
�
�K�A�!�"�f�k�4�'+�z�z�3�A�����#�#�B�'�	�$%�b�!�-C�"D����B�J�J���r#c��||jvrL|jj|�tj|j	�|j
dd�yyrV)rRr�rer�r�r��r�objs  r"rz IocpProactor._register_with_iocp�sI���d�&�&�&���� � ��%��.�.�s�z�z�|�T�Z�Z��A�N�'r#c�^�|j�t||j��}|jr
|jd=|js	|dd|�}|j|�||||f|j|j<|S#t$r}|j|�Yd}~�>d}~wwxYwr)
r�rr7rr%rEr6rBr�r+)rr ru�callbackr�r�rHs       r"rzIocpProactor._register�s�������

�b�t�z�z�2������#�#�B�'��z�z�

$� ��t�R�0�����U�#�$%�b�#�x�"8����B�J�J������
#�����"�"��
#�s�
B�	B,�B'�'B,c�\�	|j�|jj|�yrA)r�r�r_)rr s  r"r�zIocpProactor._unregister�s)��	�	
�������!�!�"�%r#c�R�tj|�}|jd�|SrV)r	r/)rr7�ss   r"r6zIocpProactor._get_accept_socket�s ���M�M�&�!��	���Q���r#c	�"�|�t}n<|dkrtd��tj|dz�}|tk\rtd��	t	j
|j|�}|�n�d}|\}}}}	|jj|�\}}	}
}|
|j vr|j#�nI|j%�s9	||||	�}|j'|�|j(j+|�d}��|j0D](}	|jj|	j2d��*|j0j5�y#t$rl|jj�r%|jjdd||||fzd��|dtjfvrtj|�Y��}wxYw#t,$r7}
|j/|
�|j(j+|�Yd}
~
��d}
~
wwxYw#d}wxYw)Nrznegative timeoutrjztimeout too bigz8GetQueuedCompletionStatus() returned an unexpected eventz)err=%s transferred=%s key=%#x address=%#x)r1�status)rm�
ValueErrorrnrore�GetQueuedCompletionStatusr�r��pop�KeyErrorr7�	get_debugr8r�rWr�r�r5�donerEr�r_r6rBr�r+r�)rr�rrr|�err�transferredrr+r�r rurwr�rHs              r"r[zIocpProactor._poll�s����?��B�
�q�[��/�0�0����7�S�=�)�B��X�~� �!2�3�3�� �:�:�4�:�:�r�J�F��~���B�-3�*�C��c�7�
�'+�{�{���w�'?�$��2�s�H� �d�+�+�+����
��V�V�X�	�$�[�#�r�:�E�
�L�L��'��M�M�(�(��+��A�M�R�$�$�	.�B��K�K�O�O�B�J�J��-�	.���� � �"��E�

��:�:�'�'�)��J�J�5�5�%7�#N�&)�;��W�%E�$F�7���q�+�"B�"B�C�C��'�'��,��

��,�,��O�O�A�&��M�M�(�(��+�+��,���A�sC�4 E�
G�,H
�A1G�G�	H�,H�<H
�H�H
�
Hc�:�|jj|�yrA)r�r�rts  r"�
_stop_servingzIocpProactor._stop_serving-s��	
���!�!�#�&r#c�4�|j�yt|jj��D]:\}}}}|j	�r�t|t�r�*	|j��<d}tj�}||z}	|jrx|	tj�krCtjd|tj�|z
�tj�|z}	|j!|�|jr�xg|_t%j&|j�d|_y#t$rS}|j�<d||d�}|jr|j|d<|jj|�Yd}~��ad}~wwxYw)NzCancelling a future failedr0r4g�?z,%r is running after closing for %.1f seconds)r��listr��values�	cancelledrror5r6r7rr8�time�	monotonicr
�debugr[r�rWr�)
rrar rurwr9r:�
msg_update�
start_time�next_msgs
          r"r�zIocpProactor.close3sa���:�:���'+�4�;�;�+=�+=�+?�&@�	C�"�C��S�(��}�}����C�!2�3��C��J�J�L�	C�0�
��^�^�%�
��
�*���k�k��4�>�>�+�+����K�!�4�>�>�#3�j�#@�B��>�>�+�j�8��
�J�J�z�"��k�k���
����D�J�J�'���
��;�	C��z�z�-�'C�),�&)�#��
�0�0�:=�:O�:O�G�$6�7��
�
�9�9�'�B���	C�s�D;�;	F�AF�Fc�$�|j�yrA)r�rZs r"r�zIocpProactor.__del__bs���
�
�r#rA)rr)"rHrIrJrmrr�r�r�r�r��staticmethodrrrrr r#r'r;rIrUr�r�rfr�rerrr�r6r[r�r�r�r�r#r"rr�s���-�#+�2�9�E��	��
����A�A�A�5�(A�A��88�>
A�<�"0�&=�� �DO��@&��
7#�r'�-�^r#rc��eZdZd�Zy)r�c	���tj|f|||||d�|���_�fd�}�jjjt
�jj��}	|	j|�y)N)r�r�r�r�r�c�\���jj�}�j|�yrA)�_proc�poll�_process_exited)r��
returncoders  �r"rwz4_WindowsSubprocessTransport._start.<locals>.callbackms!��������*�J�� � ��,r#)	r�Popenr�r7rzrf�intrPr�)
rr�r�r�r�r�r�r�rwr�s
`         r"�_startz"_WindowsSubprocessTransport._starthso���"�(�(��'��U�6�&��'�%�'��
�	-�
�J�J� � �0�0��T�Z�Z�5G�5G�1H�I��	���H�%r#N)rHrIrJr�r�r#r"r�r�fs��
&r#r�c��eZdZeZy)rN)rHrIrJr�
_loop_factoryr�r#r"rrx���%�Mr#rc��eZdZeZy)rN)rHrIrJrr�r�r#r"rr|r�r#r)1�sys�platform�ImportErrorrerWrDrnrMr	r*r�r��rrrrr	r
rr�logr
�__all__r�rm�ERROR_CONNECTION_REFUSED�ERROR_CONNECTION_ABORTEDr]ra�FuturerrNrorx�objectr��BaseSelectorEventLoopr��BaseProactorEventLooprr�BaseSubprocessTransportr�r�BaseDefaultEventLoopPolicyrrrr�r#r"�<module>r�sY��4�
��<�<�7��
�l�
#�#�����
�
�
���������������|�|���������� ����-����-�`G#�G�N�N�G#�T&�-�&�01P�-�1P�h8��8�v2�� E� E�2�g��=�=�g�TD�D�N&�/�"I�"I�&�.��&�V�%F�%F�&�&�V�%F�%F�&�8�r#