
    `f                     >   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mZ d	Zd
ZdZd ej        D             D ]4ZdD ]/Z eeed          r ddlZ ej         eeez                       05	 	 ddZ G d dej                  Z G d dej                  ZdS )zEventlet execution pool.    N)	monotonicGreenletExit)timer)signals   )base)TaskPoolz6Celery module with %s imported before eventlet patched)z	billiard.zcelery.zkombu.c              #   N   K   | ] }|                     t                    |V  !d S N)
startswith	RACE_MODS).0mods     M/var/www/html/env/lib/python3.11/site-packages/celery/concurrency/eventlet.py	<genexpr>r      s3      DDC#..*C*CDCDDDDDD    )thread	threadingsocket c           	      R    |si n|}t          j        | |||| |                      S )N)pid)r	   apply_target)targetargskwargscallbackaccept_callbackgetpids         r   r   r      s=    )RR6FVT68_!'+ + + +r   c                   P     e Zd ZdZ fdZd Zd Zd Zd Ze	d             Z
 xZS )TimerzEventlet Timer.c                     ddl m} ddlm}  t	                      j        |i | || _        || _        t                      | _        d S )Nr   )spawn_afterr   )	eventlet.greenthreadr$   greenletr   super__init___spawn_afterset_queue)selfr   r   r$   r   	__class__s        r   r(   zTimer.__init__'   sb    444444))))))$)&)))('eer   c                    t          |t                      z
  d          }|                     ||          }| j                            |           |                    | j        |           ||_        ||_        ||_	        d|_
        |S )Nr   F)maxr   r)   r+   addlink_entry_exitentryetaprioritycanceled)r,   r4   r5   r3   r   secsgs          r   _enterzTimer._enter0   s{    3$a((dE**	t'''

r   c                     	 	 |                                  n+# | j        $ r |                                 d|_        Y nw xY w| j                            |           d S # | j                            |           w xY w)NT)waitr   cancelr6   r+   discard)r,   r8   r3   s      r   r2   zTimer._entry_exit;   s    	#"$ " " "!


" K"""""DK""""s$    A %A A A  A A;c                     | j         }|rC	 |                                                                 n# t          | j        f$ r Y nw xY w|Ad S d S r   )r+   popr<   KeyErrorr   )r,   queues     r   clearzTimer.clearE   sy     			""$$$$d/0     	 	 	 	 	s   &2 AAc                 R    	 |                                  d S # | j        $ r Y d S w xY wr   )r<   r   )r,   trefs     r   r<   zTimer.cancelM   s=    	KKMMMMM  	 	 	DD	s    
&&c                     | j         S r   )r+   r,   s    r   rA   zTimer.queueS   s
    {r   )__name__
__module____qualname____doc__r(   r9   r2   rB   r<   propertyrA   __classcell__r-   s   @r   r"   r"   $   s            	 	 	# # #       X    r   r"   c                        e Zd ZdZeZdZdZdZdZdZ	dZ
 fdZd Zd Z	 	 ddZdd
ZddZddZ fdZed             Zd Zed             Z xZS )r
   zEventlet Task Pool.FTNc                     ddl m ddlm} || _        j        | _        fd| _        j        | _         t                      j	        |i | d S )Nr   greenthread)	GreenPoolc                  F    t                                                     S r   )id
getcurrentrP   s   r   <lambda>z#TaskPool.__init__.<locals>.<lambda>i   s    b!7!7!9!9:: r   )
eventletrQ   eventlet.greenpoolrR   PoolrU   r    spawn_nr'   r(   )r,   r   r   rR   rQ   r-   s       @r   r(   zTaskPool.__init__d   su    ((((((000000	%0::::"*$)&)))))r   c                     |                      | j                  | _        i | _        t          j                            |            | j        j        | _        t          j	        j        | _
        d S N)sender)rY   limit_pool	_pool_mapr   eventlet_pool_startedsendspawn
_quick_puteventlet_pool_apply_quick_apply_sigrF   s    r   on_startzTaskPool.on_startn   sX    YYtz**
%**$*777** ' ; @r   c                     t           j                            |            | j        | j                                         t           j                            |            d S r\   )r   eventlet_pool_preshutdownrb   r_   waitalleventlet_pool_postshutdownrF   s    r   on_stopzTaskPool.on_stopu   sX    )..d.;;;:!J   *//t/<<<<<r   c           	          t                               |          }|                     | |||           |                     t          |||||| j                  }|                     t          |          |           d S )N)r]   r   r   r   )r
   _make_killable_targetrf   rd   r   r    _add_to_pool_maprT   )r,   r   r   r   r   r   _r&   s           r   on_applyzTaskPool.on_apply{   s    //77T&tFTTT??DK
 
 	bllH55555r   r   c                 \    | j         |z   }| j                            |           || _         d S r   r^   r_   resizer,   nr^   s      r   growzTaskPool.grow   .    
Q
%   


r   c                 \    | j         |z
  }| j                            |           || _         d S r   rs   ru   s      r   shrinkzTaskPool.shrink   rx   r   c                     || j                                         v r7| j         |         }|                                 |                                 d S d S r   )r`   keyskillr;   )r,   r   signalr&   s       r   terminate_jobzTaskPool.terminate_job   sM    $.%%''''~c*HMMOOOMMOOOOO ('r   c                     t                                                      }|                    | j        | j                                        | j                                        d           |S )N)zmax-concurrencyzfree-threadszrunning-threads)r'   	_get_infoupdater^   r_   freerunning)r,   infor-   s     r   r   zTaskPool._get_info   sd    ww  ""#z JOO--#z1133
 
 	 	 	
 r   c                       fd}|S )Nc                  8    	  | i |S # t           $ r Y dS w xY w)N)FNNr   )r   r   r   s     r   killable_targetz7TaskPool._make_killable_target.<locals>.killable_target   sA    +vt.v... + + +***+s    
r   )r   r   s   ` r   rn   zTaskPool._make_killable_target   s$    	+ 	+ 	+ 	+ 	+
 r   c                 f    || j         |<   |                    t          j        | j         |           d S r   )r`   r1   r
   _cleanup_after_job_finish)r,   r   r&   s      r   ro   zTaskPool._add_to_pool_map   s<    &s.N	
 	
 	
 	
 	
r   c                     ||= d S r   r   )r&   pool_mapr   s      r   r   z"TaskPool._cleanup_after_job_finish   s    SMMMr   )NNNN)r   r   )rG   rH   rI   rJ   r"   signal_safeis_greentask_join_will_blockr_   r`   rd   r(   rg   rl   rq   rw   rz   r   r   staticmethodrn   ro   r   rL   rM   s   @r   r
   r
   X   s;       EKH EIJ* * * * *A A A= = = AE!%6 6 6 6   
   
          \
 
 
   \    r   r
   )r   NNNN)rJ   systimer   r&   r   kombu.asynchronousr   _timerceleryr    r	   __all__W_RACEr   modulesr   sidegetattrwarningswarnRuntimeWarningr   r"   BasePoolr
   r   r   r   <module>r      s     



       ! ! ! ! ! ! . . . . . .            

 /	
 ED3;DDD 9 9C1 9 973d## 	9OOOHM..$778889 9=.2+ + + +1 1 1 1 1FL 1 1 1h] ] ] ] ]t} ] ] ] ] ]r   