a i @ s d dl Z e jdkredd dlZd dlZd dlZd dlZd dlZd dlZd dl Z dZ dZejZej Z e Zddedd d ZG dd dZG d d dejZdS ) Nwin32z win32 only)pipePopenPIPE PipeHandlei F)TT)duplex overlappedbufsizec C s$ t jdt ttd}| r>tj}tj tj B }|| }}ntj}tj }d| }}|tjO }|d rp|tj O }|d rtj }nd}d } } z\t||tjd||tjtj} t||dtjtj|tj} tj| dd}|d | | fW S | d urt| | d urt| Y n0 d S )Nz\\.\pipe\python-pipe-{:d}-{:d}-)prefixr Tr )tempfilemktempformatosgetpidnext _mmap_counter_winapiZPIPE_ACCESS_DUPLEXZGENERIC_READZ GENERIC_WRITEZPIPE_ACCESS_INBOUNDZFILE_FLAG_FIRST_PIPE_INSTANCEZFILE_FLAG_OVERLAPPEDZCreateNamedPipeZ PIPE_WAITZNMPWAIT_WAIT_FOREVERZNULLZ CreateFileZ OPEN_EXISTINGZConnectNamedPipeZGetOverlappedResultCloseHandle)r r r addressZopenmodeaccessZobsizeZibsizeZflags_and_attribsZh1Zh2Zov r -/usr/lib64/python3.9/asyncio/windows_utils.pyr sJ r c @ s^ e Zd Zdd Zdd Zedd Zdd Zej d d dZ ejfdd Z dd Zdd ZdS )r c C s || _ d S N_handleselfhandler r r __init__V s zPipeHandle.__init__c C s2 | j d urd| j }nd}d| jj d| dS )Nzhandle=closed< >)r __class____name__r r r r __repr__Y s zPipeHandle.__repr__c C s | j S r r r r r r r ` s zPipeHandle.handlec C s | j d u rtd| j S )NzI/O operation on closed pipe)r ValueErrorr( r r r filenod s zPipeHandle.fileno)r c C s | j d ur|| j d | _ d S r r )r r r r r closei s zPipeHandle.closec C s* | j d ur&|d| t| d | d S )Nz unclosed )source)r ResourceWarningr+ )r _warnr r r __del__n s zPipeHandle.__del__c C s | S r r r( r r r __enter__s s zPipeHandle.__enter__c C s | d S r )r+ )r tvtbr r r __exit__v s zPipeHandle.__exit__N)r&