
    !ni\                         d dl Z d dlZd dlmZmZ d dlm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        T/home/homepc/tiktok-worker/venv/lib/python3.12/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        | !  |       i | _	        | j                          y N)r   READr   KQ_FILTER_READWRITEKQ_FILTER_WRITEFILTERSsuper__init___events_init_kqueue)selfclock	__class__s     r   r   zHub.__init__   sL    HHf++IIv--
 	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                          | j                  j	                         D cg c]  }|j	                         D ]  }|  }}}| j                   j                  |dd       y c c}}w Nr   )r	   closer   r   valuescontrol)r   ieeventss       r   _reinit_kqueuezHub._reinit_kqueue   sz    !\\002 '88:'  '! ' 'FAq)'s   Bc                     	 | j                   j                  |||      S # t        $ rR t        j                         | j
                  k7  r/| j                          | j                   j                  |||      cY S  w xY wr   )r	   r(   OSErrorr!   r"   r#   r,   )r   r+   
max_eventstimeouts       r   _controlzHub._control$   si    	;;&&vz7CC 	yy{dii'##%{{**6:wGG	s    AA:8A:c                 \   t         	|   |||||      }| j                  j                  |i       }||vrZ	 t        j                  || j                  j                  |      t        j                        }| j                  |gdd       |||<   |S |S # t        $ r t         	| -  |        w xY wr%   )r   addr   
setdefaultr   keventr   get	KQ_EV_ADDr1   
ValueErrorremove)
r   evtypefilenocbtbmaclistenerr+   eventr   s
            r   r3   zHub.add.   s    7;vvr2s;((4fdll.>.>v.FHXHXYugq!,!&v x  x(s   AB B+c                     |D cg c];  }t         j                  |j                  |j                  t         j                        = }}| j                  |dd       y c c}w r%   )r   r5   identfilterKQ_EV_DELETEr1   )r   r+   r*   
del_eventss       r   _delete_eventszHub._delete_events;   sS     
 MM!''188V-@-@A

 
 	j!Q'	
s   A Ac                    t         |   |       |j                  }|j                  }| j                  |   j                  |      s6| j                  |   j                  |d       }|y 	 | j                  |f       y y # t        $ r Y y w xY wr   )
r   r9   r:   r;   	listenersr6   r   poprF   r.   )r   r?   r:   r;   r@   r   s        r   r9   z
Hub.removeB   s    x ~~f%))&1LL(,,VT:E}##UH- 2  s   *A> >	B
	B
c                     t         |   |       	 | j                  j                  |      j	                         }| j                  |       y # t        $ r Y y t        $ r Y y w xY wr   )r   remove_descriptorr   rI   r'   rF   KeyErrorr.   )r   r;   r+   r   s      r   rK   zHub.remove_descriptorO   s]    !&)	\\%%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&                                Y xY wr   )rH   r   r   r   sleepr1   
MAX_EVENTSSYSTEM_EXCEPTIONSrB   rC   r   r   r6   r   noopr<   r   squelch_exceptionsysexc_info)	r   secondsreaderswritersresultrP   r@   r;   evfilts	            r   waitzHub.waitY   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__rO   r   r   r,   r1   r3   rF   r9   rK   rZ   __classcell__)r   s   @r   r   r      s5    J *(?r   r   )r!   rS   eventletr   r   eventlet.hubsr   originalr   r   r   BaseHubr   r   r   r   <module>rc      sL    	 
 % 			(	#w%a?#++ a?r   