a
    xd'                     @   sR  d Z ddlZddlZddlZddlZddlmZ ddlm	Z	 ddl
mZ dZejZejZeeddZeed	dZeed
dZeeddZeeddZeeddZeeddZeeddZeeddZeeddZeeddZeeddZeeddZeeddZeedd Zeed!d"Z eed#d$Z!eed%dZ"eed&dZ#eed'dZ$eed(dZ%eed)d*Z&eed+d,Z'eed-dZ(eed.d/Z)eed0dZ*eed1dZ+eed2d*Z,eed3d,Z-eed4dZ.d Z/Z0d Z1Z2d5 Z3Z4zej5ej6hZ7W n e8y   ej5hZ7Y n0 G d6d7 d7Z9G d8d9 d9Z:G d:d; d;Z;G d<d= d=Z<d>d? Z=d@d Z>dS )AzSelector Utilities.    N)Integral   )fileno)detect_environment)pollr   epollkqueuekevent	KQ_EV_ADDKQ_EV_DELETE   KQ_EV_ENABLE   KQ_EV_CLEAR    KQ_EV_ERRORi @  	KQ_EV_EOFi   KQ_FILTER_READKQ_FILTER_WRITEKQ_FILTER_AIOKQ_FILTER_VNODEKQ_FILTER_PROCKQ_FILTER_SIGNALiKQ_FILTER_TIMERiKQ_NOTE_LOWATKQ_NOTE_DELETEKQ_NOTE_WRITEKQ_NOTE_EXTENDKQ_NOTE_ATTRIB   KQ_NOTE_LINK   KQ_NOTE_RENAMEKQ_NOTE_REVOKE@   POLLINPOLLOUTPOLLERRPOLLHUPPOLLNVAL   c                   @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )_epollc                 C   s   t  | _d S N)r   r0   self r4   K/var/www/html/Ranjet/env/lib/python3.9/site-packages/kombu/utils/eventio.py__init__;   s    z_epoll.__init__c              
   C   sP   z| j || W n8 tyJ } z t|dd tjkr6 W Y d }~n
d }~0 0 |S Nerrno)r0   register	Exceptiongetattrr8   EEXIST)r3   fdeventsexcr4   r4   r5   r9   >   s    z_epoll.registerc                 C   sl   z| j | W nV ttttfy*   Y n> tyf } z&t|dd tjtj	fvrR W Y d }~n
d }~0 0 d S r7   )
r0   
unregisterOSError
ValueErrorKeyError	TypeErrorr;   r8   ENOENTEPERMr3   r=   r?   r4   r4   r5   r@   F   s    z_epoll.unregisterc              
   C   sX   z| j |d ur|ndW S  tyR } z t|dd tjkr> W Y d }~n
d }~0 0 d S )Nr   r8   )r0   r   r:   r;   r8   EINTR)r3   timeoutr?   r4   r4   r5   r   O   s
    z_epoll.pollc                 C   s   | j   d S r1   )r0   closer2   r4   r4   r5   rJ   V   s    z_epoll.closeN)__name__
__module____qualname__r6   r9   r@   r   rJ   r4   r4   r4   r5   r0   9   s
   	r0   c                   @   s\   e Zd ZeeB eB eB Zdd Zdd Z	dd Z
dd Zd	d
 Zdd Zdd Zdd ZdS )_kqueuec                 C   s"   t  | _i | _d | _| jj| _d S r1   )r   rN   _activeon_file_changecontrol	_kcontrolr2   r4   r4   r5   r6   ^   s    z_kqueue.__init__c                 C   s   |  ||t || j|< |S r1   )_controlr
   rO   r3   r=   r>   r4   r4   r5   r9   d   s    
z_kqueue.registerc                 C   s<   | j |d }|r8z| ||t W n ty6   Y n0 d S r1   )rO   poprS   r   rA   rT   r4   r4   r5   r@   i   s    z_kqueue.unregisterc                 C   s,   t |tttB tB | jd}| |gd d S N)filterflagsfflagsr   )r	   r   r
   r   r   w_fflagsrR   r3   r=   Zevr4   r4   r5   
watch_fileq   s    
z_kqueue.watch_filec                 C   s$   t |tt| jd}| |gd d S rV   )r	   r   r   rZ   rR   r[   r4   r4   r5   unwatch_filex   s    z_kqueue.unwatch_filec              	   C   s   |sd S g }|t @ r(|t|t|d |r4|t@ rH|t|t|d | j}|D ](}z||gd W qR tyx   Y qR0 qRd S )N)rW   rX   r   )WRITEappendr	   r   READr   rR   rB   )r3   r=   r>   rX   keventsrQ   er4   r4   r5   rS      s$    z_kqueue._controlc              
   C   s.  z|  d d|}W nF tyX } z.t|dd tjkrBW Y d }~d S  W Y d }~n
d }~0 0 i g  }}|D ]}|j}|jtkr||dt	B ||< qh|jt
kr|jt@ rt||< n||dtB ||< qh|jtkr||dtB ||< qh|jtkrh|jt@ r| | || qh|r"| | t| S )Ni  r8   r   )rR   r:   r;   r8   rH   identrW   r   getr`   r   rX   r   ERRr^   r   r   rY   r    r@   r_   rP   listitems)r3   rI   ra   r?   r>   Zfile_changeskr=   r4   r4   r5   r      s0    








z_kqueue.pollc                 C   s   | j   d S r1   )rN   rJ   r2   r4   r4   r5   rJ      s    z_kqueue.closeN)rK   rL   rM   r!   r"   r#   r    rZ   r6   r9   r@   r\   r]   rS   r   rJ   r4   r4   r4   r5   rN   Z   s   rN   c                   @   sH   e Zd Zdd Zdd Zdd Zejee	e
eeeefddZd	d
 ZdS )_pollc                 C   s*   t  | _| jj| _| jj| _| jj| _d S r1   )xpoll_pollerr   _quick_pollr9   _quick_registerr@   _quick_unregisterr2   r4   r4   r5   r6      s    

z_poll.__init__c                 C   sL   t |}d}|t@ r|tO }|t@ r,|tO }|t@ r<|tO }| || |S )Nr   )r   re   r,   r^   r+   r`   r*   rm   )r3   r=   r>   Z
poll_flagsr4   r4   r5   r9      s    z_poll.registerc              
   C   sb   zt |}W nF tyR } z.t|dd tv r<|W  Y d }~S  W Y d }~n
d }~0 0 | | |S r7   )r   rA   r;   SELECT_BAD_FDrn   rG   r4   r4   r5   r@      s    
z_poll.unregisterc
              
   C   s   |r|dk rdn||pdd }z|  |}
W nJ ttfyx } z.t|dd tjkrbW Y d }~d S  W Y d }~n
d }~0 0 g }|
D ]t\}}d}||@ r||O }||@ r||O }||@ s|t@ s|t@ r||O }|sJ t||	s|	 }|
||f q|S )Nr   g     @@r8   )rl   
_selecterrrA   r;   r8   rH   r.   r-   
isinstancer   r_   )r3   rI   roundr*   r+   r,   r`   r^   re   r   Z
event_listr?   readyr=   eventr>   r4   r4   r5   r      s*     
z
_poll.pollc                 C   s
   d | _ d S r1   )rk   r2   r4   r4   r5   rJ      s    z_poll.closeN)rK   rL   rM   r6   r9   r@   mathceilr*   r+   r,   r`   r^   re   r   r   rJ   r4   r4   r4   r5   ri      s   
ri   c                   @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )_selectc                 C   s&   t  t  t  f | _\| _| _| _d S r1   )setZ_all_rfd_wfd_efdr2   r4   r4   r5   r6      s
    z_select.__init__c                 C   sH   t |}|t@ r| j| |t@ r0| j| |t@ rD| j| |S r1   )r   re   r{   addr^   rz   r`   ry   rT   r4   r4   r5   r9      s    z_select.registerc                 C   st   | j | jB | jB D ]\}zt|gg g d W q ttfyl } z&t|dd tv rX| | W Y d }~qd }~0 0 qd S )Nr   r8   )	ry   rz   r{   _selectfrp   rA   r;   ro   r@   rG   r4   r4   r5   _remove_bad   s    z_select._remove_badc              
   C   sz   zt |}W nD tyP } z,t|dd tv r:W Y d }~d S  W Y d }~n
d }~0 0 | j| | j| | j| d S r7   )r   rA   r;   ro   ry   discardrz   r{   rG   r4   r4   r5   r@     s    z_select.unregisterc              
   C   s0  zt | j| j| j|\}}}W nn ttfy } zRt|dd tjkrRW Y d }~d S t|dd t	v rv| 
 W  Y d }~S  W Y d }~n
d }~0 0 i }|D ]*}t|ts| }||dtB ||< q|D ]*}t|ts| }||dtB ||< q|D ],}t|ts| }||dtB ||< qt| S )Nr8   r   )r}   ry   rz   r{   rp   rA   r;   r8   rH   ro   r~   rq   r   r   rd   r`   r^   re   rf   rg   )r3   rI   readwriteerrorr?   r>   r=   r4   r4   r5   r     s0    

z_select.pollc                 C   s"   | j   | j  | j  d S r1   )ry   clearrz   r{   r2   r4   r4   r5   rJ   0  s    

z_select.closeN)	rK   rL   rM   r6   r9   r~   r@   r   rJ   r4   r4   r4   r5   rw      s   
rw   c                   C   s8   t  dkrtS trtS tr(dtjv r(tS tr0t	S tS d S )NdefaultZnetbsd)
r   rw   r   r0   r   sysplatformrN   rj   ri   r4   r4   r4   r5   _get_poller6  s    
r   c                  O   s   t  | i |S )zCreate new poller instance.)r   )argskwargsr4   r4   r5   r   E  s    )?__doc__r8   ru   selectZ
__select__r   Znumbersr    r   compatr   __all__r}   r   rp   r;   rj   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r%   r'   r(   r*   r+   r,   r-   r.   r`   Z	POLL_READr^   Z
POLL_WRITEre   ZPOLL_ERREBADFZWSAENOTSOCKro   AttributeErrorr0   rN   ri   rw   r   r   r4   r4   r4   r5   <module>   sj   !W>G