
    yeF                         d Z 	 ddlmZ n# e$ r	 ddlmZ Y nw xY w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dS )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       6lib/python3.11/site-packages/zmq/backend/cffi/_poll.py_make_zmq_pollitemr      sC    #J7,--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=    7,--L(LLOLL?r   c                    g }i }ddl m} | D ]}t          |d         |          r@|||d         j        <   |                    t          |d         |d                              Xt          |d         t                    s"|d                                         |d         f}|||d         <   |                    t          |d         |d                              t          j
        d|          }t          j        dt          |                    }	 t          j        d|          }t                      }	t          j        |||          }
	 t!          |
           no# t"          $ rb |dk    rYt          dt                      |	z
  z            }|dk     rt%          j        d	|z  t(                     d}t+          d||z
            }Y w xY wg }|D ]q}|j        dk    rd|j        t          j        k    r.|                    ||j                 d         |j        f           P|                    |j        |j        f           r|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results                r   r'   r'   &   s|     	S 	Sd1gv&& 	S;?#DG$78%%&8a$q'&J&JKKKKd1gs++ 3Q(($q'2/3#DG,%%&?Qa&Q&QRRRRG&(:;;E(5#&8"9"9::KHVW--	Z{I66	bMMM   % 	 	 	{{	e(; <==	q== M24=>&  
 !"Ia9!455H	  F 
7 
7<!{ch&&/<Q?    tw5666Ms   E A)G
Gr'   )__doc__timer   ImportErrorr   r(   	zmq.errorr   r   _cffir   r	   r&   r   r   r'   __all__ r   r   <module>r?      s     
( ( ( (''''''''(  6 6 6 6 6 6 6 6                3 3 3l ,s    