HEX
Server: Apache
System: Linux server2.voipitup.com.au 4.18.0-553.104.1.lve.el8.x86_64 #1 SMP Tue Feb 10 20:07:30 UTC 2026 x86_64
User: posscale (1027)
PHP: 8.2.29
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //lib64/python3.6/site-packages/zmq/__pycache__/_future.cpython-36.opt-1.pyc
3

VS�_cH�@sndZddlmZmZddlmZddlmZmZm	Z	ddlZ
edd�ZGdd�de
j�Z
Gd
d�de
j�ZdS)z%Future-returning APIs for coroutines.�)�
namedtuple�deque)�chain)�EVENTS�POLLOUT�POLLINN�_FutureEvent�future�kind�kwargs�msgcs"eZdZdZd�fdd�	Z�ZS)�_AsyncPollerz:Poller that returns a Future on poll, instead of blocking.�cs��j��|dkr`ytt��jd�}Wn,tk
rP}z�j|�WYdd}~XnX�j|��S�j���j��g��fdd�}�j���fdd��x��j	D]�\}}t
|tj�r�t
|�j
�sʈj
j|�}|tj@r�|jd�d�|tj@r�|jd�d�q��j|�d}|tj@�r |�jO}|tj@�r6|�jO}�j�|||�q�W����fd	d
�}�j|�|dk	�r�|dk�r��fdd�}	�jd
||	����fdd�}
�j|
��fdd�}�j|��S)z Return a Future for a poll eventrNcs�j�s�jd�dS)N)�done�
set_result)�args)�watcher��/usr/lib64/python3.6/_future.py�wake_raw-sz#_AsyncPoller.poll.<locals>.wake_rawcs�j�f���S)N)Z_unwatch_raw_sockets)�f)�loop�raw_sockets�selfrr�<lambda>1sz#_AsyncPoller.poll.<locals>.<lambda>�poll)r	cs��j�rdS�j�r:y�j�Wntk
r4YnXdS�j�rR�j�j��nLytt��jd�}Wn,t	k
r�}z�j|�WYdd}~XnX�j
|�dS)Nr)r�	cancelled�cancel�RuntimeError�	exception�
set_exception�superr
r�	Exceptionr)r�result�e)�	__class__r	rrrr�
on_poll_readyEsz(_AsyncPoller.poll.<locals>.on_poll_readycs�j�s�jd�dS)N)rrr)rrr�trigger_timeout\sz*_AsyncPoller.poll.<locals>.trigger_timeoutg����MbP?cs"t�d�r�j�n
�j��dS)Nr)�hasattrrZremove_timeout)r)r�timeout_handlerr�cancel_timeoutds

z)_AsyncPoller.poll.<locals>.cancel_timeoutcs�j�s�j�dS)N)rr)r)rrr�cancel_watcherksz)_AsyncPoller.poll.<locals>.cancel_watcher)�_Futurer!r
rr"r r�
_default_loop�add_done_callbackZsockets�
isinstance�_zmq�SocketZ
_socket_class�from_socketr�_add_recv_eventr�_add_send_event�append�_READZ_WRITEZ_watch_raw_socket�
call_later)r�timeoutr#r$r�socket�maskZevtr&r'r*r+)r%)r	rrrr)rrrsP








z_AsyncPoller.poll���)r;)�__name__�
__module__�__qualname__�__doc__r�
__classcell__rr)r%rr
sr
cs6eZdZdZdZdZdZeZdZ	dZ
d7�fdd�	Zed8dd��Z
d9�fdd	�	Zejjje_�fd
d�Zejjje_d:dd�Zd;dd�Zd<dd�Zd=dd�Zdd�Zdejfdd�Zdd�Zdd�Zedd��Zd>d d!�Zd?d"d#�Zd$d%�Z d&d'�Z!d@d(d)�Z"dAd*d+�Z#d,d-�Z$d.d/�Z%d0d1�Z&d2d3�Z'd4d5�Z(�Z)S)B�_AsyncSocketNrrcs�t|tj�rd|}}n|jdd�}|dk	rHtt|�j|jd�||_n&tt|�j||f|�tjj	|j�|_|px|j
�|_t�|_
t�|_d|_|jj|_|j�dS)N�_from_socket)�shadowr)r/r0r1�popr!rA�__init__Z
underlying�_shadow_sockrCr-�io_loopr�
_recv_futures�
_send_futures�_stateZFD�_fd�_init_io_state)r�contextZsocket_typerGrr2)r%rrrE�s
z_AsyncSocket.__init__cCs|||d�S)z.Create an async socket from an existing Socket)rBrGr)�clsr9rGrrrr2�sz_AsyncSocket.from_socketcsn|jsXxHtt|j|j��D]2}|jj�sy|jj�Wqtk
rJYqXqW|j	�t
t|�j|d�dS)N)�linger)
�closed�listrrHrIr	rrr�_clear_io_stater!rA�close)rrOZevent)r%rrrS�s

z_AsyncSocket.closecs&tt|�j|�}|tkr"|j|�|S)N)r!rA�getr�_schedule_remaining_events)r�keyr#)r%rrrT�s
z_AsyncSocket.getTFcCs|jdt|||d��S)z~Receive a complete multipart zmq message.
        
        Returns a Future whose result will be a multipart message.
        �recv_multipart)�flags�copy�track)r3�dict)rrXrYrZrrrrW�sz_AsyncSocket.recv_multipartcCs|jdt|||d��S)z�Receive a single zmq frame.

        Returns a Future, whose result will be the received frame.

        Recommend using recv_multipart instead.
        �recv)rXrYrZ)r3r[)rrXrYrZrrrr\�sz_AsyncSocket.recvcKs(||d<||d<||d<|jd||d�S)zqSend a complete multipart zmq message.

        Returns a Future that resolves when sending is complete.
        rXrYrZ�send_multipart)rr)r4)rrrXrYrZrrrrr]�sz_AsyncSocket.send_multipartcKs<||d<||d<||d<|jt|||d��|jd||d�S)z�Send a single zmq frame.

        Returns a Future that resolves when sending is complete.

        Recommend using send_multipart instead.
        rXrYrZ)rXrYrZ�send)rr)�updater[r4)rrrXrYrZrrrrr^�s
z_AsyncSocket.sendcs>|j�����fdd�}�j|���fdd�}�j|��S)zDeserialize with Futurescst�j�rdS�j�r$�j�j��nL�j�}y�|�}Wn,tk
rd}z�j|�WYdd}~XnX�j|�dS)z+Chain result through serialization to recvdN)rrr r#r"r)�_ZbufZloadedr$)r�load�recvdrr�_chain�sz)_AsyncSocket._deserialize.<locals>._chaincs �j�rdS�j�r�j�dS)z"Chain cancellation from f to recvdN)rrr)r`)rrbrr�
_chain_cancel�sz0_AsyncSocket._deserialize.<locals>._chain_cancel)r,r.)rrbrarcrdr)rrarbr�_deserialize�s

z_AsyncSocket._deserializecsf�jrtjtj���j�}|j�|�|j|�}�j����fdd�}|j�rX||�n
|j	|��S)zSpoll the socket for events

        returns a Future for the poll results.
        cst�j�rdS|j�r:y�j�Wntk
r4YnXdS|j�rR�j|j��nt|j��}�j|j	�d��dS)Nr)
rrrrrr r[r#rrT)rZevts)r	rrr�
unwrap_resultsz(_AsyncSocket.poll.<locals>.unwrap_result)
rPr0ZZMQErrorZENOTSUP�
_poller_class�registerrr,rr.)rr8rX�prrfr)r	rrr�s


z_AsyncSocket.pollcs�fdd�}|j||�dS)z'Add a timeout for a send or recv Futurecs�j�rdS�jtj��dS)N)rr r0�Againr)r	rr�future_timeoutsz1_AsyncSocket._add_timeout.<locals>.future_timeoutN)�_call_later)rr	r8rkr)r	r�_add_timeoutsz_AsyncSocket._add_timeoutcCs|jj||�dS)z�Schedule a function to be called later

        Override for different IOLoop implementations

        Tornado and asyncio happen to both have ioloop.call_later
        with the same signature.
        N)rGr7)rZdelay�callbackrrrrl#sz_AsyncSocket._call_latercCs>x*t|�D]\}\}}}}||kr
Pq
WdS|j||�dS)z�Make sure that futures are removed from the event list when they resolve

        Avoids delaying cleanup until the next send/recv event,
        which may never come.
        N)�	enumerate�remove)r	Z
event_listZf_idxrr
rr`rrr�_remove_finished_future-s
z$_AsyncSocket._remove_finished_futurec	s�|p
�j�}|jd�r~|jdd�tj@r~t�j|�}y|f|�}Wn,tk
rn}z|j|�WYdd}~XnX|j	|�|S�j
jt|||dd��|j
�fdd��ttd�r҈jj}|dkr҈j||d	��jjt�t@r�j��j
r��jt�|S)
z4Add a recv event, returning the corresponding Futurer\rXrN)rcs�j|�j�S)N)rqrH)r)rrrrRsz._AsyncSocket._add_recv_event.<locals>.<lambda>ZRCVTIMEOg����MbP?)r,�
startswithrTr0�DONTWAIT�getattrrFr"r rrHr5rr.r(Zrcvtimeormrr�_handle_recv�
_add_io_state)	rr
rr	rr\�rr$�
timeout_msr)rrr3=s*


z_AsyncSocket._add_recv_eventc
sT|p
�j�}|d
kr�jr�|jdd�}|j�}|tjB|d<t�j|�}d}	y||f|�}
Wnhtjk
r�}z |tj@r�|j	|�nd}	WYdd}~Xn6t
k
r�}z|j	|�WYdd}~XnX|j|
�|	r�jr�j
�|S�jjt||||d��|j�fd	d
��ttd��rF�jjtj�}|dk�rF�j||d��jt�|S)z4Add a send event, returning the corresponding Futurer^r]rXrTFN)rrcs�j|�j�S)N)rqrI)r)rrrr�sz._AsyncSocket._add_send_event.<locals>.<lambda>�SNDTIMEOg����MbP?)r^r])r,rIrTrYr0rsrtrFrjr r"rrHrUr5rr.r(ryrmrvr)
rr
rrr	rrXZ
nowait_kwargsr^Zfinish_earlyrwr$rxr)rrr4`s<



z_AsyncSocket._add_send_eventcCs|jjt�t@sdSd}x,|jrD|jj�\}}}}|j�r@d}qPqW|jsV|jt�|dkrbdS|dkrx|jd�dS|dkr�|jj	}n|dkr�|jj
}ntd|��|dtj
O<y|f|�}Wn,tk
r�}z|j|�WYdd}~XnX|j|�dS)zHandle recv eventsNrrWr\zUnhandled recv event type: %rrX)rFrTrrrH�popleftr�_drop_io_staterrWr\�
ValueErrorr0rsr"r )rrr
rr`r\r#r$rrrru�s4



z_AsyncSocket._handle_recvcCs|jjt�t@sdSd}x,|jrD|jj�\}}}}|j�r@d}qPqW|jsV|jt�|dkrbdS|dkrx|jd�dS|dkr�|jj	}n|dkr�|jj
}ntd|��|dtj
O<y||f|�}Wn,tk
r�}z|j|�WYdd}~XnX|j|�dS)Nrr]r^zUnhandled send event type: %rrX)rFrTrrrIrzrr{rr]r^r|r0rsr"r )rrr
rrr^r#r$rrr�_handle_send�s4



z_AsyncSocket._handle_sendcCs<|jjt�}|tj@r|j�|tj@r0|j�|j�dS)z(Dispatch IO events to _handle_recv, etc.N)	rFrTrr0rrurr}rU)r�fd�eventsZ
zmq_eventsrrr�_handle_events�s

z_AsyncSocket._handle_eventscCs>|jdkrdS|dkr"|jjt�}||j@r:|jd|j�dS)zkSchedule a call to handle_events next loop iteration

        If there are still events to handle.
        rN)rJrFrTrrlr�)rrrrrrU�s

z'_AsyncSocket._schedule_remaining_eventscCs*|j|kr|j|B}|_|j|j�dS)zAdd io_state to poller.N)rJ�_update_handler)r�staterrrrv�s
z_AsyncSocket._add_io_statecCs(|j|@r|j|@|_|j|j�dS)z&Stop poller from watching an io_state.N)rJr�)rr�rrrr{s
z_AsyncSocket._drop_io_statecCs|j�dS)zOUpdate IOLoop handler with state.

        zmq FD is always read-only.
        N)rU)rr�rrrr�sz_AsyncSocket._update_handlercCs(|jj|j|j|j�|jd|j�dS)z#initialize the ioloop event handlerrN)rGZadd_handlerrFr�r6rl)rrrrrLsz_AsyncSocket._init_io_statecCs$|j}|jjr|j}|jj|�dS)zNunregister the ioloop event handler

        called once during close
        N)rFrPrKrGZremove_handler)rr~rrrrRsz_AsyncSocket._clear_io_stater;)Nr;N)N)N)rTF)rTF)rTF)rTF)NN)NNN)rr)N)*r<r=r>rHrIrJrFr
rgrGrKrE�classmethodr2rSr0r1r?rTrWr\r]r^rerrrmrl�staticmethodrqr3r4rur}r�rUrvr{r�rLrRr@rr)r%rrAssD
	




%

#
8''
	
rA)r	r
rr)r?�collectionsrr�	itertoolsrZzmqrrrr0rZPollerr
r1rArrrr�<module>s
\