
    Ph                         d dl Z d dlZd dlmZmZ d dlmZ d dlZ ej                  d      Z	 ej                  d      Z
d Z G d dej                        Zy)	    N)patchersupport)hubselecttimec                  "    t        t        d      S )Nkqueue)hasattrr        _C:\Users\daisl\Desktop\realtime-object-detection\venv\Lib\site-packages\eventlet/hubs/kqueue.pyis_availabler   
   s    68$$r   c                   b     e Zd ZdZd fd	Zd Zd Zd Z fdZd Z	 fdZ
 fd	Zdd
Z xZS )Hubd   c                     t         j                  t        j                  t         j                  t        j
                  i| _        t        t        | '  |       i | _
        | j                          y N)r   READr   KQ_FILTER_READWRITEKQ_FILTER_WRITEFILTERSsuperr   __init___events_init_kqueue)selfclock	__class__s     r   r   zHub.__init__   sN    HHf++IIv--
 	c4!%(r   c                 h    t         j                         | _        t        j                         | _        y r   )r   r	   osgetpid_pid)r   s    r   r   zHub._init_kqueue   s    mmoIIK	r   c                 .   | j                   j                          | j                          t        j                  | j
                        D cg c]  }t        j                  |      D ]  }|   }}}| j                   j                  |dd       y c c}}w Nr   )r	   closer   six
itervaluesr   control)r   ieeventss       r   _reinit_kqueuezHub._reinit_kqueue   sy     ^^DLL9 .9>>!,a , 9 .FAq).s   #Bc                    	 | j                   j                  |||      S # t        t        f$ rR t	        j
                         | j                  k7  r/| j                          | j                   j                  |||      cY S  w xY wr   )r	   r)   OSErrorIOErrorr!   r"   r#   r-   )r   r,   
max_eventstimeouts       r   _controlzHub._control%   sn    	;;&&vz7CC! 	yy{dii'##%{{**6:wGG	s    AB >B c                 l   t         t        |   |||||      }| j                  j	                  |i       }||vrZ	 t
        j                  || j                  j                  |      t
        j                        }| j                  |gdd       |||<   |S |S # t        $ r t         t        | 3  |        w xY wr%   )r   r   addr   
setdefaultr   keventr   get	KQ_EV_ADDr3   
ValueErrorremove)
r   evtypefilenocbtbmaclistenerr,   eventr   s
            r   r5   zHub.add/   s    d'BD((4fdll.>.>v.FHXHXYugq!,!&v x  c4'1s   AB B3c                     |D cg c];  }t         j                  |j                  |j                  t         j                        = }}| j                  |dd       y c c}w r%   )r   r7   identfilterKQ_EV_DELETEr3   )r   r,   r+   
del_eventss       r   _delete_eventszHub._delete_events<   sV     
 MM!''188V-@-@A 	 
 	j!Q'	
s   A Ac                 "   t         t        |   |       |j                  }|j                  }| j
                  |   j                  |      s6| j                  |   j                  |d       }|y 	 | j                  |f       y y # t        $ r Y y w xY wr   )r   r   r;   r<   r=   	listenersr8   r   poprH   r/   )r   rA   r<   r=   rB   r   s        r   r;   z
Hub.removeC   s    c4)~~f%))&1LL(,,VT:E}##UH- 2  s   .B 	BBc                     t         t        |   |       	 | j                  j	                  |      j                         }| j                  |       y # t        $ r Y y t        $ r Y y w xY wr   )	r   r   remove_descriptorr   rK   valuesrH   KeyErrorr/   )r   r=   r,   r   s      r   rM   zHub.remove_descriptorP   s_    c4*62	\\%%f-446F' 	 		s   :A 	A'A'&A'c                    | j                   | j                     }| j                   | j                     }|s|s|rt        j	                  |       y | j                  g | j                  |      }| j                  }|D ]  }|j                  }|j                  }	 |t        j                  k(  r/|j                  |t        j                        j                  |       |t        j                   k(  r/|j                  |t        j                        j                  |        y # |$ r   | j#                  |t%        j&                                t)        j*                          Y xY wr   )rJ   r   r   r   sleepr3   
MAX_EVENTSSYSTEM_EXCEPTIONSrD   rE   r   r   r8   r   noopr>   r   squelch_exceptionsysexc_infor   clear_sys_exc_info)	r   secondsreaderswritersresultrS   rB   r=   evfilts	            r   waitzHub.waitZ   s   ..+..,w

7#r4??G< 22E[[F\\F	-V222KK144V<V333KK144V<  % -&&vs||~>**,s   BD?Er   )__name__
__module____qualname__rR   r   r   r-   r3   r5   rH   r;   rM   r^   __classcell__)r   s   @r   r   r      s5    J *(-r   r   )r!   rV   eventletr   r   eventlet.hubsr   r'   originalr   r   r   BaseHubr   r   r   r   <module>rg      sO    	 
 %  
			(	#w%b-#++ b-r   