
    Ph)                     2   d Z ddlmZ ddl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j"                  rd Zej&                  Zd	 Zdd
Zd ZddZeZd ZeZd Zej8                  Zd Z eed      rej>                  Z ddZddl!m"Z# y)z:Implements the standard thread module, using greenthreads.    )_threadN)	greenlets)greenthread)Lock)	get_identstart_new_thread	start_newallocate_lockallocateexitinterrupt_main
stack_size_localLockTyper   _countc                      t               S N)r
        `C:\Users\daisl\Desktop\realtime-object-detection\venv\Lib\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                    t         j                  dk\  rAt        | dd      dk(  r1t        | d      r%| j                  j
                  fd}|_        |xs i }t        j                  t        | ||      }t        |      S )N)      
__module__ 	threading__self__c                      	           j                   j                   j                          y y # j                   j                   j                          w w xY wr   )_tstate_lockrelease)bootstrap_innerthreads   r   wrap_bootstrap_innerz.start_new_thread.<locals>.wrap_bootstrap_inner>   sW    2! &&2''//1 36&&2''//1 3s	   2 )A)
sysversion_infogetattrhasattrr-   _bootstrap_innerr   spawn_nr&   r   )functionr$   r%   r3   gr1   r2   s        @@r   r   r   0   s|    F",3{B*- "" 11	2 #7\rFM8T6BAQ<r   c                      t        d      S r!   )r   )as    r   r
   r
   P   s    A;r   c                  "    t         j                  r   )r   GreenletExitr   r   r   r   r   W   s    


r   c                      t        j                         } | j                  r:| j                  j                  s$| j                  j	                  t                      y t               r   )r   r   parentdead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   i   s*    <*,,)++*400r   )localr   )r   N)$__doc__	six.movesr   __threadsixeventlet.supportr   r   eventletr   eventlet.lockr   r4   __patched__errorr   r   PY3r   TIMEOUT_MAXr   r   r&   r   r	   r
   r   r   exit_threadr   r7   r   rG   eventlet.corolocalrI   r   r   r   r   <module>rW      s    @ ) 
 2    
- 	 77
 &&K: 	   """ 8\"&11 /r   