o
    iF                     @   s   d Z zddlmZ W n ey   ddlmZ Y nw ddlZddlmZmZ ddl	m
Z
 ddl	mZ d	d
 Zdd Zdd ZdgZdS )zzmq poll function    )	monotonic)clockN)InterruptedSystemCall	_check_rc   )ffi)libc                 C   s0   | j }td}||_d|_||_d|_|d S Nzzmq_pollitem_t*r   )_zmq_socketr   newsocketfdeventsrevents)r   flags
zmq_socketzmq_pollitem r   Q/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/zmq/backend/cffi/_poll.py_make_zmq_pollitem   s   
r   c                 C   s,   t d}t j|_| |_||_d|_|d S r	   )r   r   NULLr   r   r   r   )	socket_fdr   r   r   r   r   _make_zmq_pollitem_fromfd   s   
r   c                 C   s  g }i }ddl m} | D ]@}t|d |r)|||d j< |t|d |d  qt|d ts:|d  |d f}|||d < |t|d |d  qt	
d|}t	dt|}	 t	d|}t }	t|||}
zt|
 W n+ ty   |dkrtdt |	  }|dk rtd	| t d}td|| }Y q[w 	 g }|D ]$}|jdkr|jt	jkr|||j d |jf q||j|jf q|S )
Nr   )Socketr   zzmq_pollitem_t[]intTlongi  zFNegative elapsed time for interrupted poll: %s.  Did the clock change?)zmqr   
isinstancer
   appendr   r   filenor   r   r   castlenr   Czmq_pollr   r   warningswarnRuntimeWarningmaxr   r   r   r   )socketstimeoutcffi_pollitem_listlow_level_to_socket_objr   itemitemslist_length	c_timeoutstartrc	ms_passedresultr   r   r   r#   &   s\   
r#   )__doc__timer   ImportErrorr   r$   	zmq.errorr   r   _cffir   r   r"   r   r   r#   __all__r   r   r   r   <module>   s    
	
6