HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //proc/thread-self/root/usr/local/lib/python3.10/asyncio/__pycache__/windows_events.cpython-310.pyc
o

�ir��@s�dZddlZejdkred��ddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
mZddl
mZddl
mZdd	l
mZdd
l
mZddl
mZddl
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�fdd
�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__��3/usr/local/lib/python3.10/asyncio/windows_events.pyr6s
z_OverlappedFuture.__init__csHt���}|jdur"|jjrdnd}|�dd|�d|jjd�d��|S)N�pendingZ	completedrzoverlapped=<z, �#x�>)r�
_repr_inforr#�insert�address�r�info�staterr!r"r&<s


 z_OverlappedFuture._repr_infoc
Cst|jdurdSz|j��Wn&ty4}zd||d�}|jr$|j|d<|j�|�WYd}~nd}~wwd|_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_overlappedc�|��t�j|d�S�N)�msg)r7rr1�rr:rr!r"r1S�z_OverlappedFuture.cancelcst��|�|��dS�N)r�
set_exceptionr7�rr.rr!r"r>Wsz_OverlappedFuture.set_exceptioncst��|�d|_dSr=)r�
set_resultr�r�resultrr!r"r@[s
z_OverlappedFuture.set_resultr=)�__name__�
__module__�__qualname__�__doc__rr&r7r1r>r@�
__classcell__r!r!rr"r0srcspeZdZdZdd��fdd�
Zdd�Z�fdd	�Zd
d�Zdd
�Zd�fdd�	Z	�fdd�Z
�fdd�Z�ZS)�_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"rcs
z_BaseWaitHandleFuture.__init__cCst�|jd�tjkS�Nr)�_winapiZWaitForSingleObjectrIZ
WAIT_OBJECT_0�rr!r!r"�_pollqs�z_BaseWaitHandleFuture._pollcsdt���}|�d|jd���|jdur!|��rdnd}|�|�|jdur0|�d|jd���|S)Nzhandle=r$�signaledZwaitingzwait_handle=)rr&�appendrIrQrJr)rr!r"r&vs



z _BaseWaitHandleFuture._repr_infocCs
d|_dSr=)r�r�futr!r!r"�_unregister_wait_cb�s
z)_BaseWaitHandleFuture._unregister_wait_cbc
Cs�|jsdSd|_|j}d|_zt�|�Wn3tyH}z'|jtjkr>d||d�}|jr1|j|d<|j�	|�WYd}~dSWYd}~nd}~ww|�
d�dS�NFz$Failed to unregister the wait handler,r0)rKrJ�_overlappedZUnregisterWaitr2�winerror�ERROR_IO_PENDINGrr3r4rV�rrMr5r6r!r!r"�_unregister_wait�s*�
���
z&_BaseWaitHandleFuture._unregister_waitcr8r9)r\rr1r;rr!r"r1�r<z_BaseWaitHandleFuture.cancelc�|��t��|�dSr=)r\rr>r?rr!r"r>��z#_BaseWaitHandleFuture.set_exceptioncr]r=)r\rr@rArr!r"r@�r^z _BaseWaitHandleFuture.set_resultr=)
rCrDrErFrrQr&rVr\r1r>r@rGr!r!rr"rH`s
rHcsFeZdZdZdd��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�eventrMrrr!r"r�s
z_WaitCancelFuture.__init__cCstd��)Nz'_WaitCancelFuture must not be cancelled)�RuntimeErrorrPr!r!r"r1�sz_WaitCancelFuture.cancelc�(t��|�|jdur|�|�dSdSr=)rr@r`rArr!r"r@��
�z_WaitCancelFuture.set_resultcrcr=)rr>r`r?rr!r"r>�rdz_WaitCancelFuture.set_exception)	rCrDrErFrr1r@r>rGr!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_proactorrXZCreateEvent�_event�
_event_fut)rrrLrM�proactorrrr!r"r�s

z_WaitHandleFuture.__init__csF|jdurt�|j�d|_d|_|j�|j�d|_t��|�dSr=)	rgrO�CloseHandlerhrf�_unregisterrrrVrTrr!r"rV�s
	z%_WaitHandleFuture._unregister_wait_cbc
Cs�|jsdSd|_|j}d|_z	t�||j�Wn3tyJ}z'|jtjkr@d||d�}|jr3|j|d<|j	�
|�WYd}~dSWYd}~nd}~ww|j�|j|j
�|_dSrW)rKrJrXZUnregisterWaitExrgr2rYrZrr3r4rf�_wait_cancelrVrhr[r!r!r"r\�s.�
���


�z"_WaitHandleFuture._unregister_wait)rCrDrErrVr\rGr!r!rr"re�srec@s<eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�ZeZ	dS)
�
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)rsru)r�tmpr!r!r"�_get_unconnected_pipesz PipeServer._get_unconnected_pipec
Csr|��rdStjtjB}|r|tjO}t�|j|tjtjBtj	Btj
tjtjtj
tj�}t�|�}|j�|�|Sr=)�closedrOZPIPE_ACCESS_DUPLEXZFILE_FLAG_OVERLAPPEDZFILE_FLAG_FIRST_PIPE_INSTANCEZCreateNamedPiperoZPIPE_TYPE_MESSAGEZPIPE_READMODE_MESSAGEZ	PIPE_WAITZPIPE_UNLIMITED_INSTANCESr�BUFSIZEZNMPWAIT_WAIT_FOREVER�NULL�
PipeHandlerr�add)r�first�flags�h�piper!r!r"ru
s"

��
zPipeServer._server_pipe_handlecCs
|jduSr=)rorPr!r!r"rx�
zPipeServer.closedcCsV|jdur
|j��d|_|jdur)|jD]}|��qd|_d|_|j��dSdSr=)rtr1rorr�closers�clear)rr�r!r!r"r�"s




�zPipeServer.closeN)
rCrDrErFrrwrurxr��__del__r!r!r!r"rm�s
rmc@seZdZdZdS)�_WindowsSelectorEventLoopz'Windows version of selector event loop.N)rCrDrErFr!r!r!r"r�1�r�csJeZdZdZd
�fdd�	Z�fdd�Zdd�Zd	d
�Z	d
dd�Z�Z	S)rz2Windows version of proactor event loop using IOCP.Ncs|durt�}t��|�dSr=)rrr)rrirr!r"r8szProactorEventLoop.__init__c	s�z2|jdusJ�|�|j�t���W|jdur1|jj}|j��|dur,|j�|�d|_dSdS|jdurN|jj}|j��|durK|j�|�d|_wr=)	Z_self_reading_future�	call_soonZ_loop_self_readingr�run_foreverrr1rfrk�rrrr!r"r�=s 


�
zProactorEventLoop.run_foreverc�s:�|j�|�}|IdH}|�}|j||d|id�}||fS)N�addr��extra)rf�connect_pipe�_make_duplex_pipe_transport)r�protocol_factoryr(�fr��protocol�transr!r!r"�create_pipe_connectionPs�
�z(ProactorEventLoop.create_pipe_connectionc�s0�t���d�����fdd�	������gS)Nc
sTd}z7|r'|��}�j�|����r|��WdS��}�j||d�id����}|dur2WdS�j�|�}Wnft	yT|rL|�
�dkrL|������YdSty�}z-|rq|�
�dkrq��
d||d��|��n�jr|tjd|dd�����WYd}~dSd}~wtjy�|r�|��YdSYdSw|�_|���dS)	Nr�r�rzPipe accept failed)r-r.r�zAccept pipe failed on pipe %rT)�exc_info)rBrr�discardrxr�r�rwrf�accept_pipe�BrokenPipeError�filenor�r2r4Z_debugr�warningr�CancelledErrorrt�add_done_callback)r�r�r�r5�r(�loop_accept_piper�rZserverr!r"r�[sR
��
����z>ProactorEventLoop.start_serving_pipe.<locals>.loop_accept_piper=)rmr�)rr�r(r!r�r"�start_serving_pipeXs
�
-z$ProactorEventLoop.start_serving_pipec		�sx�|��}
t||||||||f|
|d�|	��}z|
IdHW|Sttfy)�ty;|��|��IdH�w)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_transportr=)
rCrDrErFrr�r�r�r�rGr!r!rr"r5s5�rc@s�eZdZdZd;dd�Zdd�Zdd�Zd	d
�Zd<dd
�Zdd�Z	d=dd�Z
d=dd�Zd=dd�Zd>dd�Z
d=dd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd<d%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd<d3d4�Zd5d6�Zd7d8�Zd9d:�ZdS)?rz#Proactor implementation using IOCP.rcCsDd|_g|_t�tjtd|�|_i|_t�	�|_
g|_t�	�|_dSrN)
r3�_resultsrX�CreateIoCompletionPort�INVALID_HANDLE_VALUErz�_iocp�_cacherprqrK�
_unregistered�_stopped_serving)rZconcurrencyr!r!r"r�s
�
zIocpProactor.__init__cCs|jdur	td��dS)NzIocpProactor is closed)r�rbrPr!r!r"�
_check_closed�s
�zIocpProactor._check_closedcCsFdt|j�dt|j�g}|jdur|�d�d|jjd�|�fS)Nzoverlapped#=%sz
result#=%srxz<%s %s>� )�lenr�r�r�rSr rC�join)rr*r!r!r"�__repr__�s�

zIocpProactor.__repr__cCs
||_dSr=)r3)rrr!r!r"�set_loop�r�zIocpProactor.set_loopNcCs.|js|�|�|j}g|_z|Wd}Sd}wr=)r�rQ)r�timeoutrvr!r!r"�select�s
zIocpProactor.selectcCs|j��}|�|�|Sr=)r3r�r@)r�valuerUr!r!r"�_result��

zIocpProactor._resultrcC�||�|�t�t�}zt|tj�r|�|��||�n|�|��|�Wnt	y2|�
d�YSwdd�}|�|||�S)N�c
S�Bz|��WSty }z|jtjtjfvrt|j���d}~wwr=��	getresultr2rYrXZERROR_NETNAME_DELETEDZERROR_OPERATION_ABORTED�ConnectionResetErrorr��r��keyrr5r!r!r"�finish_recv��
�
��z&IocpProactor.recv.<locals>.finish_recv)�_register_with_iocprX�
Overlappedrz�
isinstance�socketZWSARecvr�ZReadFiler�r��	_register�r�conn�nbytesr~rr�r!r!r"�recv��

��
zIocpProactor.recvcCr�)Nrc
Sr�r=r�r�r!r!r"r��r�z+IocpProactor.recv_into.<locals>.finish_recv)r�rXr�rzr�r�ZWSARecvIntor�ZReadFileIntor�r�r�)rr��bufr~rr�r!r!r"�	recv_into�r�zIocpProactor.recv_intocCs^|�|�t�t�}z|�|��||�Wnty#|�d�YSwdd�}|�|||�S)N)r�Nc
Sr�r=r�r�r!r!r"r�r�z*IocpProactor.recvfrom.<locals>.finish_recv)	r�rXr�rzZWSARecvFromr�r�r�r�r�r!r!r"�recvfrom�s

�
zIocpProactor.recvfromcCs>|�|�t�t�}|�|��|||�dd�}|�|||�S)Nc
Sr�r=r�r�r!r!r"�finish_sendr�z(IocpProactor.sendto.<locals>.finish_send)r�rXr�rzZ	WSASendTor�r�)rr�r�r~r�rr�r!r!r"�sendtos



zIocpProactor.sendtocCsZ|�|�t�t�}t|tj�r|�|��||�n|�|��|�dd�}|�	|||�S)Nc
Sr�r=r�r�r!r!r"r�&r�z&IocpProactor.send.<locals>.finish_send)
r�rXr�rzr�r�ZWSASendr�Z	WriteFiler�)rr�r�r~rr�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_SOCKETrXZSO_UPDATE_ACCEPT_CONTEXT�
settimeout�
gettimeout�getpeername)r�r�rr��r��listenerr!r"�
finish_accept8s�z*IocpProactor.accept.<locals>.finish_acceptc�s.�z|IdHWdStjy|���wr=)rr�r�)r/r�r!r!r"�accept_coroAs��z(IocpProactor.accept.<locals>.accept_coror)r��_get_accept_socket�familyrXr�rzZAcceptExr�r�r
Z
ensure_futurer3)rr�rr�r�r/�coror!r�r"�accept2s

	
zIocpProactor.acceptc
s��jtjkrt����|�|j��}|�d�|S|�	��zt�
����j�Wn"tyL}z|j
tjkr9����ddkrB�WYd}~nd}~wwt�t�}|����|��fdd�}|�|�|�S)Nrrcs|����tjtjd��SrN)r�r�r�r�rXZSO_UPDATE_CONNECT_CONTEXT�r�r�r�r�r!r"�finish_connectds
�z,IocpProactor.connect.<locals>.finish_connect)�typer��
SOCK_DGRAMrXZ
WSAConnectr�r3r�r@r�Z	BindLocalr�r2rY�errnoZ	WSAEINVAL�getsocknamer�rzZ	ConnectExr�)rr�r(rU�err�r!r�r"�connectNs(


���
zIocpProactor.connectc		Csb|�|�t�t�}|d@}|d?d@}|�|��t�|���|||dd�dd�}|�|||�S)Nr� rc
Sr�r=r�r�r!r!r"�finish_sendfilewr�z.IocpProactor.sendfile.<locals>.finish_sendfile)	r�rXr�rzZTransmitFiler��msvcrtZ
get_osfhandler�)	r�sock�file�offset�countrZ
offset_lowZoffset_highr�r!r!r"�sendfilems


�	zIocpProactor.sendfilecsJ|���t�t�}|�����}|r|���S�fdd�}|�|�|�S)Ncs|���Sr=)r�r��r�r!r"�finish_accept_pipe�sz4IocpProactor.accept_pipe.<locals>.finish_accept_pipe)r�rXr�rzZConnectNamedPiper�r�r�)rr�rZ	connectedr�r!r�r"r��s


zIocpProactor.accept_pipec
�st�t}	zt�|�}Wn)ty$}z
|jtjkr�WYd}~nd}~wwt|dt�}t�	|�IdHqt
�|�S)NT�)�CONNECT_PIPE_INIT_DELAYrXZConnectPiper2rYZERROR_PIPE_BUSY�min�CONNECT_PIPE_MAX_DELAYr
�sleeprr{)rr(�delayrLr5r!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)rrLr�r!r!r"�wait_for_handle�szIocpProactor.wait_for_handlecCs|�|dd�}||_|Srn)rr`)rraZ
done_callbackrUr!r!r"rl�szIocpProactor._wait_cancelcs�|��|durtj}nt�|d�}t�t�}t�||j	|j
|�}|r.t||||jd��n
t
|||||jd���jr?�jd=�fdd�}�|d|f|j|j
<�S)N�@�@rrcs���Sr=)rQr��r�r!r"�finish_wait_for_handle�sz=IocpProactor._wait_for_handle.<locals>.finish_wait_for_handler)r�rO�INFINITE�math�ceilrXr�rzZRegisterWaitWithQueuer�r(r_r3rerr�)rrLr�Z
_is_cancel�msrrMrr!rr"r�s$
�
�	zIocpProactor._wait_for_handlecCs4||jvr|j�|�t�|��|jdd�dSdSrN)rKr|rXr�r�r��r�objr!r!r"r��s
�z IocpProactor._register_with_iocpc
Cs�|��t||jd�}|jr|jd=|js:z|dd|�}Wnty4}z|�|�WYd}~n
d}~ww|�|�||||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�rSr�r!r!r"rkszIocpProactor._unregistercCst�|�}|�d�|SrN)r�r�)rr��sr!r!r"r�r�zIocpProactor._get_accept_socketcCs�|durt}n|dkrtd��t�|d�}|tkrtd��	t�|j|�}|dur+n�d}|\}}}}z|j�|�\}}	}
}Wn)t	yh|j
��rZ|j
�dd||||fd��|dtj
fvrft�|�Yqw|
|jvrs|��n=|��s�z5z||||	�}Wnty�}
z|�|
�|j�|�WYd}
~
nd}
~
ww|�|�|j�|�Wd}nd}wq|jD]
}	|j�|	jd�q�|j��dS)	Nrznegative timeoutrztimeout too bigTz8GetQueuedCompletionStatus() returned an unexpected eventz)err=%s transferred=%s key=%#x address=%#x)r-�status)r�
ValueErrorrr	rXZGetQueuedCompletionStatusr�r��pop�KeyErrorr3Z	get_debugr4r�rOrjr�r1�doner2r>r�rSr@r�r(r�)rr�r
r�errZtransferredr�r(r�rrr
r�r�r!r!r"rQsZ

��	
�


��
��
)zIocpProactor._pollcCs|j�|�dSr=)r�r|rr!r!r"�
_stop_servingIszIocpProactor._stop_servingcCs|jdurdSt|j���D]D\}\}}}}|��rqt|t�r!qz|��WqtyR}z|j	durHd||d�}|j
rB|j
|d<|j	�|�WYd}~qd}~wwd}t�
�}	|	|}
|jr|
t�
�krwt�d|t�
�|	�t�
�|}
|�|�|js`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�debugrQr�rOrj)rr(rUrrr
r5r6Z
msg_updateZ
start_timeZnext_msgr!r!r"r�OsD


�
���
�	
zIocpProactor.closecCs|��dSr=)r�rPr!r!r"r�~szIocpProactor.__del__)rr=)r)rN)rCrDrErFrr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrlrr�r�rkr�rQrr�r�r!r!r!r"r�s:








"
 

9/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��
returncoderPr!r"r
�s
z4_WindowsSubprocessTransport._start.<locals>.callback)	r�Popenrr3rfr�intrIr�)
rr�r�r�r�r�r�r�r
r�r!rPr"�_start�s���z"_WindowsSubprocessTransport._startN)rCrDrEr!r!r!r!r"r��sr�c@�eZdZeZdS)rN)rCrDrEr
�
_loop_factoryr!r!r!r"r�r�rc@r")rN)rCrDrErr#r!r!r!r"r�r�r)2rF�sys�platform�ImportErrorrXrOr�rr�r�r�rrp�rrrrrr	r
r�logr�__all__rzrZERROR_CONNECTION_REFUSEDZERROR_CONNECTION_ABORTEDr�r��FuturerrHr_re�objectrmZBaseSelectorEventLoopr�ZBaseProactorEventLooprrZBaseSubprocessTransportr�r
ZBaseDefaultEventLoopPolicyrrrr!r!r!r"�<module>sZ
0J4;jf