?
Current File : //opt/alt/python313/lib64/python3.13/asyncio/__pycache__/windows_utils.cpython-313.pyc
�

M��iB���SrSSKr\RS:wa\"S5eSSKrSSKrSSKrSSKrSSKrSSK	r	Sr
Sr\Rr\Rr
\R"5rSrSS	\S
.Sjr"SS
5r"SS\R&5rg)z)Various Windows specific bits and pieces.�N�win32z
win32 only)�pipe�Popen�PIPE�
PipeHandlei �F)TT)�duplex�
overlapped�bufsizec���U(a4[Rn[R[R-nX"peO#[Rn[RnSUpeU[R
-nUS(aU[R-nUS(a[RnOSnS=p�[R"5H�n
SR[R"5[[5[R"S5R55n[R "X�[R"SXV[R$[R&5n O [R2"WUS[R&[R4U[R&5n	[R6"USS9n
U
R9S5 X�4$![(aFnU
[*:�aeUR,[R.[R04;aeSnAGM\SnAff=f! Ub[R:"U5 U	b[R:"U	5 e=f)zELike os.pipe() but with overlapped support and using handles not fds.r�Nz!\\.\pipe\python-pipe-{:d}-{:d}-{}�T�r
)�_winapi�PIPE_ACCESS_DUPLEX�GENERIC_READ�
GENERIC_WRITE�PIPE_ACCESS_INBOUND�FILE_FLAG_FIRST_PIPE_INSTANCE�FILE_FLAG_OVERLAPPED�	itertools�count�format�os�getpid�next�
_mmap_counter�urandom�hex�CreateNamedPipe�	PIPE_WAIT�NMPWAIT_WAIT_FOREVER�NULL�OSError�_MAX_PIPE_ATTEMPTS�winerror�ERROR_PIPE_BUSY�ERROR_ACCESS_DENIED�
CreateFile�
OPEN_EXISTING�ConnectNamedPipe�GetOverlappedResult�CloseHandle)r	r
r�openmode�access�obsize�ibsize�flags_and_attribs�h1�h2�attempts�address�e�ovs              �</opt/alt/python313/lib64/python3.13/asyncio/windows_utils.pyrr s���
��-�-���%�%��(=�(=�=�� ���.�.���&�&���G����5�5�5�H��!�}��G�0�0�0���!�}�#�8�8�����N�B��!���)�H�:�A�A��	�	��T�-�0�"�*�*�Q�-�2C�2C�2E�G�G�

��,�,��w�'8�'8��v�w�'C�'C�W�\�\�S���*��
�
��V�Q����g�.C�.C��w�|�|�-���
%�
%�b�T�
:��
���t�$��v�
���
��1�1���:�:�g�&=�&=�&-�&A�&A�&C�C��C��
���
�>�����#�
�>�����#�
�s9�0A-H)�AG�#A2H)�
H&� :H!�H)�!H&�&H)�)5Ic��\rSrSrSrSrSr\S5rSr	\
RS.Sjr\
R4S	jrS
rSrSrg
)r�Xz�Wrapper for an overlapped pipe handle which is vaguely file-object like.

The IOCP event loop can use these instead of socket objects.
c��Xlg�N��_handle��self�handles  r9�__init__�PipeHandle.__init__]s����c�|�URbSUR<3nOSnSURRSUS3$)Nzhandle=�closed�<� �>)r?�	__class__�__name__r@s  r9�__repr__�PipeHandle.__repr__`sB���<�<�#��t�|�|�.�/�F��F��4�>�>�*�*�+�1�V�H�A�6�6rEc��UR$r=r>�rAs r9rB�PipeHandle.handlegs���|�|�rEc�J�URc[S5eUR$)NzI/O operation on closed pipe)r?�
ValueErrorrPs r9�fileno�PipeHandle.filenoks"���<�<���;�<�<��|�|�rE)r-c�R�URbU"UR5 SUlggr=r>)rAr-s  r9�close�PipeHandle.closeps$���<�<�#�����%��D�L�$rEc�`�URb!U"SU<3[US9 UR5 gg)Nz	unclosed )�source)r?�ResourceWarningrW)rA�_warns  r9�__del__�PipeHandle.__del__us-���<�<�#��I�d�X�&���E��J�J�L�$rEc��U$r=�rPs r9�	__enter__�PipeHandle.__enter__zs���rEc�$�UR5 gr=)rW)rA�t�v�tbs    r9�__exit__�PipeHandle.__exit__}s���
�
�rEr>N)rL�
__module__�__qualname__�__firstlineno__�__doc__rCrM�propertyrBrTrr-rW�warnings�warnr]rarg�__static_attributes__r`rEr9rrXsR����7������
$+�#6�#6� �
%�M�M��
�rErc�0^�\rSrSrSrSU4SjjrSrU=r$)r�z�Replacement for subprocess.Popen using overlapped pipe handles.

The stdin, stdout, stderr are None or instances of PipeHandle.
c�N>�URS5(aeURSS5S:XdeS=n=pxS=n	=p�U[:Xa2[SSS9up�[R"U[
R5nOUnU[:Xa#[SS9up�[R"U
S5nOUnU[:Xa#[SS9up�[R"US5nOU[:XaUnOUn[TU]$"U4XgUS	.UD6 U	b[U	5UlU
b[U
5UlUb[U5Ul
U[:Xa[
R "U5 U[:Xa[
R "U5 U[:Xa[
R "U5 gg! X�U4HnUcM[R"U5 M  e=f!U[:Xa[
R "U5 U[:Xa[
R "U5 U[:Xa[
R "U5 ff=f)
N�universal_newlinesrr)FTT)r
r	)TFr)�stdin�stdout�stderr)�getrr�msvcrt�open_osfhandler�O_RDONLY�STDOUT�superrCrrurvrwrr-rW)rA�argsrurvrw�kwds�	stdin_rfd�
stdout_wfd�
stderr_wfd�stdin_wh�	stdout_rh�	stderr_rh�stdin_rh�	stdout_wh�	stderr_wh�hrKs                �r9rC�Popen.__init__�s�����8�8�0�1�1�1�1��x�x�	�1�%��*�*�*�.2�2�	�2�J�+/�/��/�9��D�=�!%��t�!L��H��-�-�h����D�I��I��T�>�#'�=�#A� �I��.�.�y�!�<�J��J��T�>�#'�=�#A� �I��.�.�y�!�<�J�
�v�
�#�J��J�	%��G��T�
8��$.�
8�26�
8��#�'��1��
��$�(��3����$�(��3�����}�����#���~�����$���~�����$���#	��9�5���=��'�'��*�6�
����}�����#���~�����$���~�����$��s%�&F�:9G�
F>�#F>�>G�A#H$)rwrurv)NNN)rLrirjrkrlrCrp�
__classcell__)rKs@r9rr�s����+%�+%rEr)rl�sys�platform�ImportErrorrrryr�
subprocessrn�__all__�BUFSIZErr|rrr%rrrr`rEr9�<module>r�s���/�
��<�<�7��
�l�
#�#���
�	���0��������	�	�	�����!�
����\�7�2�p&�&�X0%�J���0%rE