o
    á¹iD  ã                   @   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   úS/home/ubuntu/veenaModal/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 r–t d	|› 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è  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Úresultr   r   r   r#   &   sX   
ýó
þÿ€r#   )Ú__doc__Útimer   ÚImportErrorr   r$   Ú	zmq.errorr   r   Ú_cffir   r   r"   r   r   r#   Ú__all__r   r   r   r   Ú<module>   s    ÿ
	
6