Şuanki Dizin: /usr/lib64/python3.9/asyncio/__pycache__/ |
Şuanki Dosya : //usr/lib64/python3.9/asyncio/__pycache__/windows_events.cpython-39.opt-1.pyc |
a �DOg��@s�dZddlZejdkred��ddlZddlZddlZddlZddlZddl Z ddl Z ddlZddlZddl mZddl mZddl mZdd l mZdd l mZddl mZddl mZdd l mZddlmZdZdZdZdZdZdZdZGdd�dej�Z Gdd�dej�Z!Gdd�de!�Z"Gdd�de!�Z#Gdd�de$�Z%Gdd �d ej&�Z'Gd!d"�d"ej(�Z)Gd#d$�d$�Z*Gd%d&�d&ej+�Z,e'Z-Gd'd(�d(ej.�Z/Gd)d*�d*ej.�Z0e0Z1dS)+z.Selector and proactor event loops for Windows.�N�win32z win32 only�)�events)�base_subprocess)�futures)� exceptions)�proactor_events)�selector_events)�tasks)� windows_utils)�logger)�SelectorEventLoop�ProactorEventLoop�IocpProactor�DefaultEventLoopPolicy�WindowsSelectorEventLoopPolicy�WindowsProactorEventLoopPolicy���i�i�g����MbP?g�������?cs`eZdZdZdd��fdd� Z�fdd�Zdd �Zd�fd d� Z�fdd �Z�fdd�Z �Z S)�_OverlappedFuturez�Subclass of Future which represents an overlapped operation. Cancelling it will immediately cancel the overlapped operation. N��loopcs&t�j|d�|jr|jd=||_dS�Nr���)�super�__init__�_source_traceback�_ov)�self�ovr�� __class__��./usr/lib64/python3.9/asyncio/windows_events.pyr6sz_OverlappedFuture.__init__csHt���}|jdurD|jjr dnd}|�dd|�d|jjd�d��|S)N�pendingZ completedrzoverlapped=<z, �#x�>)r� _repr_inforr#�insert�address�r�info�staterr!r"r&<s z_OverlappedFuture._repr_infoc Cst|jdurdSz|j��WnLtyh}z4d||d�}|jrH|j|d<|j�|�WYd}~n d}~00d|_dS)Nz&Cancelling an overlapped future failed��message� exception�future�source_traceback)r�cancel�OSErrorr�_loop�call_exception_handler)r�exc�contextr!r!r"�_cancel_overlappedCs � "z$_OverlappedFuture._cancel_overlappedcs|��t�j|d�S�N)�msg)r7rr1�rr9rr!r"r1Ssz_OverlappedFuture.cancelcst��|�|��dS�N)r� set_exceptionr7�rr.rr!r"r<Wsz_OverlappedFuture.set_exceptioncst��|�d|_dSr;)r� set_resultr�r�resultrr!r"r>[sz_OverlappedFuture.set_result)N)�__name__� __module__�__qualname__�__doc__rr&r7r1r<r>� __classcell__r!r!rr"r0srcspeZdZdZdd��fdd� Zdd�Z�fdd �Zd d�Zdd �Zd�fdd� Z �fdd�Z �fdd�Z�ZS)�_BaseWaitHandleFuturez2Subclass of Future which represents a wait handle.Nrcs8t�j|d�|jr|jd=||_||_||_d|_dS)NrrT)rrrr�_handle�_wait_handle�_registered)rr�handle�wait_handlerrr!r"rcsz_BaseWaitHandleFuture.__init__cCst�|jd�tjkS�Nr)�_winapiZWaitForSingleObjectrGZ WAIT_OBJECT_0�rr!r!r"�_pollqs�z_BaseWaitHandleFuture._pollcsdt���}|�d|jd���|jdurB|��r4dnd}|�|�|jdur`|�d|jd���|S)Nzhandle=r$�signaledZwaitingzwait_handle=)rr&�appendrGrOrHr)rr!r"r&vs z _BaseWaitHandleFuture._repr_infocCs d|_dSr;)r�r�futr!r!r"�_unregister_wait_cb�sz)_BaseWaitHandleFuture._unregister_wait_cbc Cs�|js dSd|_|j}d|_zt�|�Wnfty�}zN|jtjkr|d||d�}|jrb|j|d<|j� |�WYd}~dSWYd}~n d}~00|� d�dS�NFz$Failed to unregister the wait handler,r0)rIrH�_overlappedZUnregisterWaitr2�winerror�ERROR_IO_PENDINGrr3r4rT�rrKr5r6r!r!r"�_unregister_wait�s$� $z&_BaseWaitHandleFuture._unregister_waitcs|��t�j|d�Sr8)rZrr1r:rr!r"r1�sz_BaseWaitHandleFuture.cancelcs|��t��|�dSr;)rZrr<r=rr!r"r<�sz#_BaseWaitHandleFuture.set_exceptioncs|��t��|�dSr;)rZrr>r?rr!r"r>�sz _BaseWaitHandleFuture.set_result)N) rArBrCrDrrOr&rTrZr1r<r>rEr!r!rr"rF`s rFcsFeZdZdZdd��fdd� Zdd�Z�fdd �Z�fd d�Z�ZS)�_WaitCancelFuturezoSubclass of Future which represents a wait for the cancellation of a _WaitHandleFuture using an event. Nrcst�j||||d�d|_dS)Nr)rr�_done_callback)rr�eventrKrrr!r"r�sz_WaitCancelFuture.__init__cCstd��dS)Nz'_WaitCancelFuture must not be cancelled)�RuntimeErrorrNr!r!r"r1�sz_WaitCancelFuture.cancelcs$t��|�|jdur |�|�dSr;)rr>r\r?rr!r"r>�s z_WaitCancelFuture.set_resultcs$t��|�|jdur |�|�dSr;)rr<r\r=rr!r"r<�s z_WaitCancelFuture.set_exception) rArBrCrDrr1r>r<rEr!r!rr"r[�s r[cs6eZdZdd��fdd� Z�fdd�Zdd�Z�ZS) �_WaitHandleFutureNrcs<t�j||||d�||_d|_t�dddd�|_d|_dS)NrTF)rr� _proactorZ_unregister_proactorrVZCreateEvent�_event� _event_fut)rrrJrK�proactorrrr!r"r�s z_WaitHandleFuture.__init__csF|jdur"t�|j�d|_d|_|j�|j�d|_t��|�dSr;) rarM�CloseHandlerbr`�_unregisterrrrTrRrr!r"rT�s z%_WaitHandleFuture._unregister_wait_cbc Cs�|js dSd|_|j}d|_zt�||j�Wnfty�}zN|jtjkr�d||d�}|jrf|j|d<|j � |�WYd}~dSWYd}~n d}~00|j�|j|j �|_dSrU)rIrHrVZUnregisterWaitExrar2rWrXrr3r4r`�_wait_cancelrTrbrYr!r!r"rZ�s(� $ �z"_WaitHandleFuture._unregister_wait)rArBrCrrTrZrEr!r!rr"r_�sr_c@s<eZdZdZdd�Zdd�Zdd�Zdd �Zd d�ZeZ dS) � PipeServerzXClass representing a pipe server. This is much like a bound, listening socket. cCs,||_t��|_d|_d|_|�d�|_dS�NT)�_address�weakref�WeakSet�_free_instances�_pipe�_accept_pipe_future�_server_pipe_handle)rr(r!r!r"r�s zPipeServer.__init__cCs|j|�d�}|_|S)NF)rmro)r�tmpr!r!r"�_get_unconnected_pipesz PipeServer._get_unconnected_pipec Csr|��rdStjtjB}|r&|tjO}t�|j|tjtjBtj Btj tjtjtj tj�}t�|�}|j�|�|Sr;)�closedrMZPIPE_ACCESS_DUPLEXZFILE_FLAG_OVERLAPPEDZFILE_FLAG_FIRST_PIPE_INSTANCEZCreateNamedPiperiZPIPE_TYPE_MESSAGEZPIPE_READMODE_MESSAGEZ PIPE_WAITZPIPE_UNLIMITED_INSTANCESr�BUFSIZEZNMPWAIT_WAIT_FOREVER�NULL� PipeHandlerl�add)r�first�flags�h�piper!r!r"ro s" �� zPipeServer._server_pipe_handlecCs |jduSr;)rirNr!r!r"rrszPipeServer.closedcCsR|jdur|j��d|_|jdurN|jD]}|��q*d|_d|_|j��dSr;)rnr1rirl�closerm�clear)rrzr!r!r"r{"s zPipeServer.closeN) rArBrCrDrrqrorrr{�__del__r!r!r!r"rg�s rgc@seZdZdZdS)�_WindowsSelectorEventLoopz'Windows version of selector event loop.N)rArBrCrDr!r!r!r"r~1sr~csHeZdZdZd �fdd� Z�fdd�Zdd�Zd d �Zddd�Z�Z S)rz2Windows version of proactor event loop using IOCP.Ncs|durt�}t��|�dSr;)rrr)rrcrr!r"r8szProactorEventLoop.__init__c s�zV|�|j�t���W|jdur�|jj}|j��|durP|jsP|j� |�d|_n>|jdur�|jj}|j��|dur�|js�|j� |�d|_0dSr;) � call_soonZ_loop_self_readingr�run_foreverZ_self_reading_futurerr1r#r`re�rrrr!r"r�=s � zProactorEventLoop.run_foreverc�s8|j�|�}|IdH}|�}|j||d|id�}||fS)N�addr��extra)r`�connect_pipe�_make_duplex_pipe_transport)r�protocol_factoryr(�frz�protocol�transr!r!r"�create_pipe_connectionPs �z(ProactorEventLoop.create_pipe_connectionc�s.t���d�����fdd� ������gS)Nc sd}zn|rN|��}�j�|����r4|��WdS��}�j||d�id����}|durdWdS�j�|�}Wn�t y�}zN|r�|� �dkr���d||d��|��n�jr�t jd|dd�WYd}~n8d}~0tjy�|r�|��Yn0|�_|���dS) Nr�r�rzPipe accept failed)r-r.rzzAccept pipe failed on pipe %rT)�exc_info)r@rl�discardrrr{r�rqr`�accept_piper2�filenor4Z_debugr�warningr�CancelledErrorrn�add_done_callback)r�rzr�r5�r(�loop_accept_piper�rZserverr!r"r�[sB �� �z>ProactorEventLoop.start_serving_pipe.<locals>.loop_accept_pipe)N)rgr)rr�r(r!r�r"�start_serving_pipeXs( z$ProactorEventLoop.start_serving_pipec �s�|��} t||||||||f| |d�| ��}z| IdHWn@ttfyR�Yn*tyz|��|��IdH�Yn0|S)N)�waiterr�)� create_future�_WindowsSubprocessTransport� SystemExit�KeyboardInterrupt� BaseExceptionr{�_wait)rr��args�shell�stdin�stdout�stderr�bufsizer��kwargsr�Ztranspr!r!r"�_make_subprocess_transport�s" ���z,ProactorEventLoop._make_subprocess_transport)N)N) rArBrCrDrr�r�r�r�rEr!r!rr"r5s0�rc@s�eZdZdZd;dd�Zdd�Zdd�Zd d �Zd<dd �Zdd�Z d=dd�Z d>dd�Zd?dd�Zd@dd�Z dAdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�ZdBd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�ZdCd3d4�Zd5d6�Zd7d8�Zd9d:�ZdS)Drz#Proactor implementation using IOCP.rcCsDd|_g|_t�tjtd|�|_i|_t� �|_ g|_t� �|_dSrL) r3�_resultsrV�CreateIoCompletionPort�INVALID_HANDLE_VALUErt�_iocp�_cacherjrkrI� _unregistered�_stopped_serving)rZconcurrencyr!r!r"r�s � zIocpProactor.__init__cCs|jdurtd��dS)NzIocpProactor is closed)r�r^rNr!r!r"� _check_closed�s zIocpProactor._check_closedcCsFdt|j�dt|j�g}|jdur0|�d�d|jjd�|�fS)Nzoverlapped#=%sz result#=%srrz<%s %s>� )�lenr�r�r�rQr rA�join)rr*r!r!r"�__repr__�s� zIocpProactor.__repr__cCs ||_dSr;)r3)rrr!r!r"�set_loop�szIocpProactor.set_loopNcCs |js|�|�|j}g|_|Sr;)r�rO)r�timeoutrpr!r!r"�select�s zIocpProactor.selectcCs|j��}|�|�|Sr;)r3r�r>)r�valuerSr!r!r"�_result�s zIocpProactor._resultrcCs||�|�t�t�}z4t|tj�r6|�|��||�n|�|��|�Wnt yd|� d�YS0dd�}|�|||�S)N�c SsTz |��WStyN}z,|jtjtjfvr8t|j��n�WYd}~n d}~00dSr;�� getresultr2rWrVZERROR_NETNAME_DELETEDZERROR_OPERATION_ABORTED�ConnectionResetErrorr��r��keyrr5r!r!r"�finish_recv�s �z&IocpProactor.recv.<locals>.finish_recv)�_register_with_iocprV� Overlappedrt� isinstance�socketZWSARecvr�ZReadFile�BrokenPipeErrorr�� _register�r�conn�nbytesrxrr�r!r!r"�recv�s zIocpProactor.recvcCs||�|�t�t�}z4t|tj�r6|�|��||�n|�|��|�Wnt yd|� d�YS0dd�}|�|||�S)Nrc SsTz |��WStyN}z,|jtjtjfvr8t|j��n�WYd}~n d}~00dSr;r�r�r!r!r"r��s �z+IocpProactor.recv_into.<locals>.finish_recv)r�rVr�rtr�r�ZWSARecvIntor�ZReadFileIntor�r�r�)rr��bufrxrr�r!r!r"� recv_into�s zIocpProactor.recv_intocCs^|�|�t�t�}z|�|��||�WntyF|�d�YS0dd�}|�|||�S)N)r�Nc SsTz |��WStyN}z,|jtjtjfvr8t|j��n�WYd}~n d}~00dSr;r�r�r!r!r"r��s �z*IocpProactor.recvfrom.<locals>.finish_recv) r�rVr�rtZWSARecvFromr�r�r�r�r�r!r!r"�recvfrom�s zIocpProactor.recvfromcCs>|�|�t�t�}|�|��|||�dd�}|�|||�S)Nc SsTz |��WStyN}z,|jtjtjfvr8t|j��n�WYd}~n d}~00dSr;r�r�r!r!r"�finish_send s �z(IocpProactor.sendto.<locals>.finish_send)r�rVr�rtZ WSASendTor�r�)rr�r�rxr�rr�r!r!r"�sendtos zIocpProactor.sendtocCsZ|�|�t�t�}t|tj�r4|�|��||�n|�|��|�dd�}|� |||�S)Nc SsTz |��WStyN}z,|jtjtjfvr8t|j��n�WYd}~n d}~00dSr;r�r�r!r!r"r�s �z&IocpProactor.send.<locals>.finish_send) r�rVr�rtr�r�ZWSASendr�Z WriteFiler�)rr�r�rxrr�r!r!r"�sends zIocpProactor.sendcsv|���|��j��t�t�}|����������fdd�}dd�}|�|�|�}||��}t j ||jd�|S)NcsD|��t�d����}��tjtj|��� �� ������fS)Nz@P)r��struct�packr�� setsockoptr�� SOL_SOCKETrVZSO_UPDATE_ACCEPT_CONTEXT� settimeout� gettimeout�getpeername)r�r�rr��r��listenerr!r"� finish_accept/s�z*IocpProactor.accept.<locals>.finish_acceptc�s2z|IdHWntjy,|���Yn0dSr;)rr�r{)r/r�r!r!r"�accept_coro8s z(IocpProactor.accept.<locals>.accept_coror)r��_get_accept_socket�familyrVr�rtZAcceptExr�r�r Z ensure_futurer3)rr�rr�r�r/�coror!r�r"�accept)s zIocpProactor.acceptc s��jtjkr4t����|�|j��}|�d�|S|� ��zt� ����j�WnDty�}z,|j tjkrr����ddkr��WYd}~n d}~00t�t�}|����|��fdd�}|�|�|�S)Nrrcs|����tjtjd��SrL)r�r�r�r�rVZSO_UPDATE_CONNECT_CONTEXT�r�r�r�r�r!r"�finish_connect[s �z,IocpProactor.connect.<locals>.finish_connect)�typer�� SOCK_DGRAMrVZ WSAConnectr�r3r�r>r�Z BindLocalr�r2rW�errnoZ WSAEINVAL�getsocknamer�rtZ ConnectExr�)rr�r(rS�err�r!r�r"�connectEs" zIocpProactor.connectc Csb|�|�t�t�}|d@}|d?d@}|�|��t�|���|||dd�dd�}|�|||�S)Nr� rc SsTz |��WStyN}z,|jtjtjfvr8t|j��n�WYd}~n d}~00dSr;r�r�r!r!r"�finish_sendfilens �z.IocpProactor.sendfile.<locals>.finish_sendfile) r�rVr�rtZTransmitFiler��msvcrtZ get_osfhandler�) r�sock�file�offset�countrZ offset_lowZoffset_highr�r!r!r"�sendfileds � zIocpProactor.sendfilecsJ|���t�t�}|�����}|r0|���S�fdd�}|�|�|�S)Ncs|���Sr;)r�r��rzr!r"�finish_accept_pipe�sz4IocpProactor.accept_pipe.<locals>.finish_accept_pipe)r�rVr�rtZConnectNamedPiper�r�r�)rrzrZ connectedr�r!r�r"r�ys zIocpProactor.accept_pipec �stt}zt�|�}WqjWn2tyH}z|jtjkr4�WYd}~n d}~00t|dt�}t� |�IdHqt �|�S)N�)�CONNECT_PIPE_INIT_DELAYrVZConnectPiper2rWZERROR_PIPE_BUSY�min�CONNECT_PIPE_MAX_DELAYr �sleeprru)rr(�delayrJr5r!r!r"r��s zIocpProactor.connect_pipecCs|�||d�S)z�Wait for a handle. Return a Future object. The result of the future is True if the wait completed, or False if the wait did not complete (on timeout). F)�_wait_for_handle)rrJr�r!r!r"�wait_for_handle�szIocpProactor.wait_for_handlecCs|�|dd�}||_|Srh)r�r\)rr]Z done_callbackrSr!r!r"rf�szIocpProactor._wait_cancelcs�|��|durtj}nt�|d�}t�t�}t�||j |j |�}|r\t||||jd��nt |||||jd���jr~�jd=�fdd�}�|d|f|j|j <�S)N�@�@rrcs���Sr;)rOr��r�r!r"�finish_wait_for_handle�sz=IocpProactor._wait_for_handle.<locals>.finish_wait_for_handler)r�rM�INFINITE�math�ceilrVr�rtZRegisterWaitWithQueuer�r(r[r3r_rr�)rrJr�Z _is_cancel�msrrKr�r!r�r"r��s$ � � zIocpProactor._wait_for_handlecCs0||jvr,|j�|�t�|��|jdd�dSrL)rIrvrVr�r�r��r�objr!r!r"r��s z IocpProactor._register_with_iocpc Cs�|��t||jd�}|jr$|jd=|jstz|dd|�}Wn.tyh}z|�|�WYd}~nd}~00|�|�||||f|j|j <|Sr) r�rr3rr#r2r<r>r�r()rrr��callbackr�r�r�r!r!r"r��s zIocpProactor._registercCs|��|j�|�dS)a Unregister an overlapped object. Call this method when its future has been cancelled. The event can already be signalled (pending in the proactor event queue). It is also safe if the event is never signalled (because it was cancelled). N)r�r�rQr�r!r!r"re�szIocpProactor._unregistercCst�|�}|�d�|SrL)r�r�)rr��sr!r!r"r�s zIocpProactor._get_accept_socketcCs�|durt}n0|dkr td��nt�|d�}|tkr>td��t�|j|�}|durX�qZd}|\}}}}z|j�|�\}} } }WnVt y�|j ��r�|j �dd||||fd��|dtj fvr�t�|�Yq>Yn0| |jvr�|��q>|��s>z|||| �}Wn<t�y@} z"|�| �|j�|�WYd} ~ q>d} ~ 00|�|�|j�|�q>|jD]} |j�| jd��q`|j��dS)Nrznegative timeoutr�ztimeout too bigz8GetQueuedCompletionStatus() returned an unexpected eventz)err=%s transferred=%s key=%#x address=%#x)r-�status)r�� ValueErrorr�r�rVZGetQueuedCompletionStatusr�r��pop�KeyErrorr3Z get_debugr4r�rMrdr�r1�doner2r<r�rQr>r�r(r|)rr�r�r�errZtransferredr�r(r�rr�rr�r�r!r!r"rOsL �� " zIocpProactor._pollcCs|j�|�dSr;)r�rvr�r!r!r"� _stop_serving>szIocpProactor._stop_servingcCs|jdurdSt|j���D]�\}\}}}}|��r6qt|t�rBqz|��Wqty�}z>|j dur�d||d�}|j r�|j |d<|j �|�WYd}~qd}~00qd}t� �} | |} |jr�| t� �kr�t�d|t� �| �t� �|} |�|�q�g|_t�|j�d|_dS)NzCancelling a future failedr,r0g�?z,%r is running after closing for %.1f seconds)r��listr��items� cancelledr�r[r1r2r3rr4�time� monotonicr�debugrOr�rMrd)rr(rSrr�rr5r6Z msg_updateZ start_timeZnext_msgr!r!r"r{Ds> � $�zIocpProactor.closecCs|��dSr;)r{rNr!r!r"r}sszIocpProactor.__del__)r)N)r)r)r)rN)r)N)N)rArBrCrDrr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rfr�r�r�rer�rOrr{r}r!r!r!r"r�s8 " 7/rc@seZdZdd�ZdS)r�c sPtj|f|||||d�|���_�fdd�}�jj�t�jj��} | �|�dS)N)r�r�r�r�r�cs�j��}��|�dSr;)�_proc�pollZ_process_exited)r�� returncoderNr!r"r~s z4_WindowsSubprocessTransport._start.<locals>.callback) r�Popenrr3r`r��intrGr�) rr�r�r�r�r�r�r�rr�r!rNr"�_startys���z"_WindowsSubprocessTransport._startN)rArBrCrr!r!r!r"r�wsr�c@seZdZeZdS)rN)rArBrCr � _loop_factoryr!r!r!r"r�src@seZdZeZdS)rN)rArBrCrrr!r!r!r"r�sr)2rD�sys�platform�ImportErrorrVrMr�r�r�r�r�rrj�rrrrrr r r�logr�__all__rtr�ZERROR_CONNECTION_REFUSEDZERROR_CONNECTION_ABORTEDr�r��FuturerrFr[r_�objectrgZBaseSelectorEventLoopr~ZBaseProactorEventLooprrZBaseSubprocessTransportr�r ZBaseDefaultEventLoopPolicyrrrr!r!r!r"�<module>sX 0J4;e`
Linux 65-254-81-4.cprapid.com 5.14.0-284.11.1.el9_2.x86_64 #1 SMP PREEMPT_DYNAMIC Tue May 9 05:49:00 EDT 2023 x86_64
Apache
65.254.81.4