ok

Mini Shell

Direktori : /lib64/python3.6/concurrent/futures/__pycache__/
Upload File :
Current File : //lib64/python3.6/concurrent/futures/__pycache__/thread.cpython-36.opt-1.pyc

3


 \��@s�dZdZddlZddlmZddlZddlZddlZddlZddl	Z	ej
�Zdadd�Z
eje
�Gdd	�d	e�Zd
d�ZGdd
�d
ej�ZdS)zImplements ThreadPoolExecutor.z"Brian Quinlan (brian@sweetapp.com)�N)�_baseFcCsJdattj��}x|D]\}}|jd�qWx|D]\}}|j�q2WdS)NT)�	_shutdown�list�_threads_queues�items�put�join)r�t�q�r�/usr/lib64/python3.6/thread.py�_python_exit!sr
c@seZdZdd�Zdd�ZdS)�	_WorkItemcCs||_||_||_||_dS)N)�future�fn�args�kwargs)�selfrrrrrrr�__init__-sz_WorkItem.__init__cCsf|jj�sdSy|j|j|j�}Wn2tk
rT}z|jj|�d}WYdd}~XnX|jj|�dS)N)rZset_running_or_notify_cancelrrr�
BaseExceptionZ
set_exceptionZ
set_result)r�result�excrrr�run3s
z
_WorkItem.runN)�__name__�
__module__�__qualname__rrrrrrr,srcCs|yRxL|jdd�}|dk	r$|j�~q|�}ts<|dks<|jrJ|jd�dS~qWWn$tk
rvtjjddd�YnXdS)NT)�blockzException in worker)�exc_info)�getrrrrrZLOGGERZcritical)Zexecutor_referenceZ
work_queueZ	work_item�executorrrr�_worker@s

r c@sReZdZej�jZddd�Zdd�Ze	j
jje_dd�Zd
d
d�Z
e	j
j
je
_dS)�ThreadPoolExecutorN�cCsf|dkrtj�pdd}|dkr(td��||_tj�|_t�|_d|_	t
j�|_|p^d|j
�|_dS)aInitializes a new ThreadPoolExecutor instance.

        Args:
            max_workers: The maximum number of threads that can be used to
                execute the given calls.
            thread_name_prefix: An optional name prefix to give our threads.
        N��rz"max_workers must be greater than 0FzThreadPoolExecutor-%d)�os�	cpu_count�
ValueError�_max_workers�queueZQueue�_work_queue�set�_threadsr�	threadingZLock�_shutdown_lock�_counter�_thread_name_prefix)r�max_workersZthread_name_prefixrrrr[s

zThreadPoolExecutor.__init__cOsN|j�>|jrtd��tj�}t||||�}|jj|�|j�|SQRXdS)Nz*cannot schedule new futures after shutdown)	r.r�RuntimeErrorrZFuturerr*r�_adjust_thread_count)rrrr�f�wrrr�submitrszThreadPoolExecutor.submitcCsz|jfdd�}t|j�}||jkrvd|jp,||f}tj|ttj	||�|jfd�}d|_
|j�|jj|�|jt
|<dS)NcSs|jd�dS)N)r)�_r
rrr�
weakref_cb�sz;ThreadPoolExecutor._adjust_thread_count.<locals>.weakref_cbz%s_%d)�name�targetrT)r*�lenr,r(r0r-ZThreadr �weakref�refZdaemon�start�addr)rr8Znum_threadsZthread_namer	rrrr3s



z'ThreadPoolExecutor._adjust_thread_countTc	CsD|j�d|_|jjd�WdQRX|r@x|jD]}|j�q0WdS)NT)r.rr*rr,r)r�waitr	rrr�shutdown�szThreadPoolExecutor.shutdown)Nr")T)rrr�	itertools�count�__next__r/rr6r�Executor�__doc__r3rArrrrr!Vs


r!)rF�
__author__�atexit�concurrent.futuresrrBr)r-r<r%�WeakKeyDictionaryrrr
�register�objectrr rEr!rrrr�<module>s	


Zerion Mini Shell 1.0