
    fD                         d Z 	 ddlmZ ddlZddlmZmZ ddl	m
Z
 ddl	mZ d	 Zd
 Zd ZdgZy# e$ r	 ddlmZ Y 2w xY w)zzmq poll function    )	monotonic)clockN)InterruptedSystemCall	_check_rc   )ffi)libc                     | j                   }t        j                  d      }||_        d|_        ||_        d|_        |d   S Nzzmq_pollitem_t*r   )_zmq_socketr   newsocketfdeventsrevents)r   flags
zmq_socketzmq_pollitems       Q/var/www/cvtools/html/venv/lib/python3.12/site-packages/zmq/backend/cffi/_poll.py_make_zmq_pollitemr      sE    ##J77,-L$LLOLL?    c                     t        j                  d      }t         j                  |_        | |_        ||_        d|_        |d   S r   )r   r   NULLr   r   r   r   )	socket_fdr   r   s      r   _make_zmq_pollitem_fromfdr      s>    77,-L((LLOLL?r   c                 $   g }i }ddl m} | D ]  }t        |d   |      r4|||d   j                  <   |j	                  t        |d   |d                Ft        |d   t              s|d   j                         |d   f}|||d   <   |j	                  t        |d   |d                 t        j                  d|      }t        j                  dt        |            }	 t        j                  d|      }t               }	t        j                  |||      }
	 t!        |
       	 g }|D ]  }|j,                  dkD  s|j.                  t        j0                  k7  r.|j	                  ||j.                     d   |j,                  f       ^|j	                  |j2                  |j,                  f        |S # t"        $ rV |dkD  rMt        dt               |	z
  z        }|dk  r t%        j&                  d| d	t(               d}t+        d||z
        }Y 0w xY w)
Nr   )Socketr   zzmq_pollitem_t[]intlongi  z,Negative elapsed time for interrupted poll: z.  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results                r   r'   r'   &   s     	Sd1gv&;?#DG$7$78%%&8a$q'&JKd1gs+Q($q'2/3#DG,%%&?Qa&QR	S GG&(:;E((5#&8"9:K
HHVW-	ZZ{I6	bM  F 
7<<!{{chh&/<Q? tww56
7 M9 % 	{	e(; <=	q= MMFyk R2 2&
 !"Ia9!45	s   F0 0AHHr'   )__doc__timer   ImportErrorr   r(   	zmq.errorr   r   _cffir   r	   r&   r   r   r'   __all__ r   r   <module>r?      sL    
(  6  3l ,i  ('(s   / ==