
    !nid                        d Z ddlZddlmZ ddlmZ ddlm	Z	 ddl
mZ ddlZg dZej                  ZeZda eed      rej$                  Zd	 Zej(                  Zd
 ZddZd Z G d d      Zd ZddZddZddZeZd Zd ZeZ d Z!ejD                  Z"d Z# eed      rejH                  Z%ddZ$ddl&m'Z(  eed      rejR                  Z) eed      rejT                  Z*yy) z:Implements the standard thread module, using greenthreads.    N)	greenletsgreenthread)with_timeout)Lock)r   LockType_ThreadHandle_count_get_main_thread_ident_local_make_thread_handleallocateallocate_lockexit	get_identinterrupt_main
stack_sizestart_joinable_thread	start_newstart_new_thread_is_main_interpreterc                      t               S N)r        U/home/homepc/tiktok-worker/venv/lib/python3.12/site-packages/eventlet/green/thread.py_set_sentinelr      s     ?r   c                      t         S r   __threadcountr   r   r   r
   r
   !   s    r   c                 V    | t        t        j                               S t        |       S r   )idgreenlet
getcurrent)grs    r   r   r   %   s$    	z(%%'(("vr   c                 V    t         dz  a 	  | |i | t         dz  a y # t         dz  a w xY wN   r   )funcargskwargss      r   __thread_bodyr,   ,   s3    QMdfs    (c                   8    e Zd ZddZd Zd Zed        ZddZy)r	   Nc                      || _         d| _        y )NF)_greenthread_done)selfr   s     r   __init__z_ThreadHandle.__init__6   s    '
r   c                     d| _         y NT)r0   r1   s    r   	_set_donez_ThreadHandle._set_done:   s	    
r   c                 ^    | j                   | j                   j                  S | j                  S r   )r/   deadr0   r5   s    r   is_donez_ThreadHandle.is_done=   s*    ($$)))zzr   c                 ,    t        | j                        S r   )r   r/   r5   s    r   identz_ThreadHandle.identB   s    **++r   c                     t        | j                  d      sy | t        || j                  j                        S | j                  j                         S )Nwait)hasattrr/   r   r=   )r1   timeouts     r   joinz_ThreadHandle.joinF   sI    t((&1):):)?)?@@  %%''r   r   )	__name__
__module____qualname__r2   r6   r9   propertyr;   r@   r   r   r   r	   r	   5   s*    
 , ,(r   r	   c                 b    t        j                         }| t        |      k(  sJ t        |      S )Nr   )r#   r$   r   r	   )r;   r   s     r   r   r   N   s.    %%'KIk****[11r   c                 .   dt         j                  cxk  rdk  rDn nAt        | dd      dk(  r1t        | d      r%| j                  j
                  fd}|_        |xs i }|rt        j                  nt        j                  } |t        | ||      S )N)      )rG      rB    	threading__self__c                      	           t        dd       j                  j                          y y # t        dd       j                  j                          w w xY w)N_tstate_lock)getattrrN   release)bootstrap_innerthreads   r   wrap_bootstrap_innerz+__spawn_green.<locals>.wrap_bootstrap_innerb   s_    2! 6>48D''//1 E76>48D''//1 Es	   3 *A)
sysversion_inforO   r>   rL   _bootstrap_innerr   spawnspawn_nr,   )functionr*   r+   joinablerS   
spawn_funcrQ   rR   s         @@r   __spawn_greenr\   T   s    #"",W,,3{B*- "" 11	2 #7\rF&.""K4G4GJmXtV<<r   c                 N    t        | d      }|t        |      }|S ||_        |S )NT)rZ   r   )r\   r	   r/   )rY   handledaemongs       r   r   r   q   s3    h.A~1- M  Mr   c                 4    t        | ||      }t        |      S )N)r*   r+   )r\   r   )rY   r*   r+   r`   s       r   r   r   z   s    hT&9AQ<r   c                      t        j                         } | j                  | j                  } | j                  t        |       S r   )r#   r$   parentr   r   s    r   r   r      s@    %%'K



(!(( 


([!!r   c                      t        d      S r'   )r   )as    r   r   r      s    A;r   c                  "    t         j                  r   )r#   GreenletExitr   r   r   r   r      s    


r   c                      t        j                         } | j                  r:| j                  j                  s$| j                  j	                  t                      y t               r   )r#   r$   rc   r8   throwKeyboardInterrupt)currs    r   r   r      sB     D{{4;;+++-.!!r   r   c                 L    | 
t               S | t               kD  rt        |       S y r   )__original_stack_size__)sizes    r   r   r      s*    <*,,)++*400r   )localdaemon_threads_allowed	_shutdownr   )r   NFr4   )r   N)+__doc___thread__threadeventlet.supportr   r#   eventletr   eventlet.timeoutr   eventlet.lockr   rT   __patched__errorr   r    r>   r   r   TIMEOUT_MAXr
   r   r,   r	   r   r\   r   r   r   r   r   r   r   exit_threadr   r   rm   eventlet.corolocalro   r   rp   rq   r   r   r   <module>r~      s   @  2   )  
0 	
8+,#88 ""( (22=:
 	"   """ 8\"&11 /
8-.%<<
8[!""I "r   