
    !ni?                        d Z ddlZddlmZ ddlmZ ddlmZ g dZeddgz  Zej                  j                  d	      Zej                         Zdaej                  j                  d	 e       d
efdef       da G d d      Zdad Zd ZeZy)z=Implements the standard threading module, using greenthreads.    N)thread)time)	greenlets)Lock_allocate_lock_get_main_thread_ident_make_thread_handle	_shutdown_sleep_start_joinable_thread_start_new_thread_ThreadHandlecurrentThreadcurrent_threadlocal
stack_size_active_limbo	get_ident_set_sentinel	threading_threadr      c                       e Zd ZdZd Zd ZddZd ZeZd Z	e	Z
 eee	      Z ed       Zd	 ZeZ ed
       Zd ZeZy)_GreenThreadzQWrapper for GreenThread objects to provide Thread-like attributes
    and methodsc                 @    || _         dt        z  | _        t        dz  ay )NzGreenThread-%dr   )_g_count_name)selfgs     X/home/homepc/tiktok-worker/venv/lib/python3.12/site-packages/eventlet/green/threading.py__init__z_GreenThread.__init__"   s    %.
!    c                 <    d| j                   d| j                  dS )Nz<_GreenThread(z, z)>)r   r   r    s    r"   __repr__z_GreenThread.__repr__(   s    +/::tww??r$   Nc                 6    | j                   j                         S N)r   wait)r    timeouts     r"   joinz_GreenThread.join+   s    ww||~r$   c                     | j                   S r)   )r   r&   s    r"   getNamez_GreenThread.getName.   s    zzr$   c                 $    t        |      | _        y r)   )strr   )r    names     r"   setNamez_GreenThread.setName2   s    Y
r$   c                 ,    t        | j                        S r)   )idr   r&   s    r"   <lambda>z_GreenThread.<lambda>8   s    "TWW+ r$   c                      yNT r&   s    r"   isAlivez_GreenThread.isAlive:   s    r$   c                      yr7   r8   r&   s    r"   r5   z_GreenThread.<lambda>>   s    r$   c                     | j                   S r)   )daemonr&   s    r"   isDaemonz_GreenThread.isDaemon@   s    {{r$   r)   )__name__
__module____qualname____doc__r#   r'   r,   r.   get_namer2   set_namepropertyr1   identr9   is_aliver<   r=   	is_daemonr8   r$   r"   r   r      sa    @HHGW%D-.EH'(FIr$   r   c                     t         st        d      a t        t         j                  d      rt        | d      s| j                  | _        | S )Nr   rB   )__threading
__import__hasattrThreadr.   rB   )ts    r"   _fixup_threadrN   H   s;      -""J/:&YY
Hr$   c                     t        j                         } | st        t        j	                               S 	 t
        j                  t        |       j                        }||S t        2t        j                  j                  t        d      j                        a
t               D cg c]  }|j                   k(  s| }}|r|d   S fd}	 | j#                  |       t%        |       x}<   |S # t        $ r i xt
        _        Y w xY wc c}w # t        $ r! t        t        j	                               }Y |S w xY w)Nr   r   c                     = y r)   r8   )r!   activeg_ids    r"   cleanupzcurrent_thread.<locals>.cleanupv   s
    4Lr$   )greenlet
getcurrentrN   __orig_threadingr   __threadlocalrQ   AttributeErrorr4   get__patched_enumerateeventletpatcherpatch_functionrJ   	enumeraterE   linkr   )r!   rM   thfoundrS   rQ   rR   s        @@r"   r   r   Y   s3   A-<<>??+%% a5D

4A} "&..==j>U>_>_`-/DB288t3CRDEDQx+	w (?*F4LHA  +(**%+ E  = *99;< H=s/   C7 +D DD 7DD&EE)rA   r[   eventlet.greenr   r   eventlet.supportr   rT   __patched__r\   originalrV   r   rW   rZ   injectglobalsr   r   rI   rN   r   r   r8   r$   r"   <module>rh      s    C  !  2$ _- -##,,[9  &&(  	    ITN	 
$ $N ")X r$   