Your IP : 3.15.17.137


Current Path : /opt/alt/python38/lib64/python3.8/concurrent/futures/__pycache__/
Upload File :
Current File : //opt/alt/python38/lib64/python3.8/concurrent/futures/__pycache__/thread.cpython-38.opt-2.pyc

U

i�f@"�@s�dZddlZddlmZddlZddlZddlZddlZddlZe�	�Z
dadd�Ze�
e�Gdd�de�Zd	d
�ZGdd�dej�ZGd
d�dej�ZdS)z"Brian Quinlan (brian@sweetapp.com)�N)�_baseFcCsBdatt���}|D]\}}|�d�q|D]\}}|��q,dS�NT)�	_shutdown�list�_threads_queues�items�put�join)r�t�q�r�>/opt/alt/python38/lib64/python3.8/concurrent/futures/thread.py�_python_exit!src@seZdZdd�Zdd�ZdS)�	_WorkItemcCs||_||_||_||_dS�N)�future�fn�args�kwargs)�selfrrrrrrr
�__init__.sz_WorkItem.__init__c
Csf|j��sdSz|j|j|j�}Wn2tk
rT}z|j�|�d}W5d}~XYnX|j�|�dSr)rZset_running_or_notify_cancelrrr�
BaseException�
set_exceptionZ
set_result)r�result�excrrr
�run4s
z
_WorkItem.runN)�__name__�
__module__�__qualname__rrrrrr
r-srcCs�|dk	rRz||�Wn<tk
rPtjjddd�|�}|dk	rJ|��YdSXzx|jdd�}|dk	r�|��~|�}|dk	r�|j��~qT|�}t	s�|dks�|j	r�|dk	r�d|_	|�
d�WdS~qTWn$tk
r�tjjddd�YnXdS)NzException in initializer:T)�exc_info)�blockzException in worker)rrZLOGGERZcritical�_initializer_failed�getr�_idle_semaphore�releaserr)Zexecutor_referenceZ
work_queue�initializer�initargsZexecutor�	work_itemrrr
�_workerBs8

r(c@seZdZdS)�BrokenThreadPoolN)rrrrrrr
r)msr)c@sfeZdZe��jZddd�Zdd�Ze	j
jje_e	j
jje_dd	�Z
d
d�Zdd
d�Ze	j
jje_dS)�ThreadPoolExecutorN�rcCs�|dkrtdt��pdd�}|dkr.td��|dk	rFt|�sFtd��||_t��|_	t
�d�|_t
�|_d|_d|_t
��|_|p�d|��|_||_||_dS)	N� ��rz"max_workers must be greater than 0zinitializer must be a callableFzThreadPoolExecutor-%d)�min�os�	cpu_count�
ValueError�callable�	TypeError�_max_workers�queueZSimpleQueue�_work_queue�	threadingZ	Semaphorer#�set�_threads�_brokenrZLock�_shutdown_lock�_counter�_thread_name_prefix�_initializer�	_initargs)rZmax_workersZthread_name_prefixr%r&rrr
rxs$


�zThreadPoolExecutor.__init__c
Os�t|�dkr|^}}}nV|s&td��nHd|krZ|�d�}|^}}ddl}|jdtdd�ntdt|�d��|j�f|jr�t|j��|j	r�t
d	��t	r�t
d
��t��}t
||||�}|j�|�|��|W5QR�SQRXdS)N�zDdescriptor 'submit' of 'ThreadPoolExecutor' object needs an argumentrrz.Passing 'fn' as keyword argument is deprecated)�
stacklevelz6submit expected at least 1 positional argument, got %dr-z*cannot schedule new futures after shutdownz6cannot schedule new futures after interpreter shutdown)�lenr4�pop�warnings�warn�DeprecationWarningr<r;r)r�RuntimeErrorrZFuturerr7r�_adjust_thread_count)rrrrrE�f�wrrr
�submit�s6

�
�
zThreadPoolExecutor.submitcCs�|jjdd�rdS|jfdd�}t|j�}||jkr�d|jp>||f}tj|t	t
�||�|j|j|j
fd�}d|_|��|j�|�|jt|<dS)Nr)ZtimeoutcSs|�d�dSr)r)�_rrrr
�
weakref_cb�sz;ThreadPoolExecutor._adjust_thread_count.<locals>.weakref_cbz%s_%d)�name�targetrT)r#�acquirer7rCr:r5r>r8ZThreadr(�weakref�refr?r@Zdaemon�start�addr)rrNZnum_threadsZthread_namer
rrr
rI�s&


�
��z'ThreadPoolExecutor._adjust_thread_countc	Csb|j�Rd|_z|j��}Wntjk
r6YqTYnX|dk	r|j�t|j��qW5QRXdS)NzBA thread initializer failed, the thread pool is not usable anymore)	r<r;r7Z
get_nowaitr6ZEmptyrrr))rr'rrr
r!�s
z&ThreadPoolExecutor._initializer_failedTc	Cs@|j�d|_|j�d�W5QRX|r<|jD]}|��q.dSr)r<rr7rr:r	)r�waitr
rrr
�shutdown�s
zThreadPoolExecutor.shutdown)Nr+Nr)T)rrr�	itertools�count�__next__r=rrLr�Executor�__text_signature__�__doc__rIr!rWrrrr
r*ss
�
& 
r*)�
__author__�atexitZconcurrent.futuresrrXr6r8rRr0�WeakKeyDictionaryrrr�register�objectrr(ZBrokenExecutorr)r[r*rrrr
�<module>s	
+

?>