o
    Df                     @  s   d Z ddlmZ ddlmZmZmZ ddlmZm	Z	m
Z
 ddlmZmZ dZer<ddlmZ ed	eed
Ze
de	f ZG dd dZG dd deZdS )zThread execution pool.    )annotations)FutureThreadPoolExecutorwait)TYPE_CHECKINGAnyCallable   )BasePoolapply_target)TaskPool)	TypedDictPoolInfozmax-concurrencythreads.c                   @  s"   e Zd ZdddZddd
dZdS )ApplyResultfuturer   returnNonec                 C  s   || _ | j j| _d S N)fresultget)selfr    r   R/home/ubuntu/webapp/venv/lib/python3.10/site-packages/celery/concurrency/thread.py__init__   s   zApplyResult.__init__Ntimeoutfloat | Nonec                 C  s   t | jg| d S r   )r   r   )r   r   r   r   r   r      s   zApplyResult.wait)r   r   r   r   r   )r   r   r   r   )__name__
__module____qualname__r   r   r   r   r   r   r      s    
r   c                      sd   e Zd ZU dZded< dZdZd fddZd fddZ				d d!ddZ	d" fddZ
  ZS )#r   zThread Task Pool.intlimitTFargsr   kwargsr   r   c                   s$   t  j|i | t| jd| _d S )N)max_workers)superr   r   r#   executor)r   r$   r%   	__class__r   r   r   %   s   zTaskPool.__init__c                   s   | j   t   d S r   )r(   shutdownr'   on_stop)r   r)   r   r   r,   )   s   
zTaskPool.on_stopNtargetTargetFunctiontuple[Any, ...] | Nonedict[str, Any] | NonecallbackCallable[..., Any] | Noneaccept_callback_r   c                 K  s   | j t|||||}t|S r   )r(   submitr   r   )r   r-   r$   r%   r1   r3   r4   r   r   r   r   on_apply-   s   	zTaskPool.on_applyr   c                   s(   t   }|| jt| jjd |S )Nr   )r'   	_get_infoupdater#   lenr(   _threads)r   infor)   r   r   r7   :   s   

zTaskPool._get_info)r$   r   r%   r   r   r   )r   r   )NNNN)r-   r.   r$   r/   r%   r0   r1   r2   r3   r2   r4   r   r   r   )r   r   )r   r    r!   __doc____annotations__body_can_be_buffersignal_safer   r,   r6   r7   __classcell__r   r   r)   r   r      s   
 r   N)r<   
__future__r   concurrent.futuresr   r   r   typingr   r   r   baser
   r   __all__r   r"   r   r.   r   r   r   r   r   r   <module>   s    	