HEX
Server: Apache/2.4.65 (Unix) OpenSSL/1.1.1k
System: Linux vps109042.inmotionhosting.com 4.18.0 #1 SMP Mon Sep 30 15:36:27 MSK 2024 x86_64
User: cisa (1010)
PHP: 8.2.30
Disabled: NONE
Upload Files
File: //opt/imh-python/lib/python3.9/concurrent/futures/__pycache__/process.cpython-39.opt-2.pyc
a

b�h�t�@s~dZddlZddlmZddlZddlZddlZddlm	Z	ddl
Z
ddlZddlm
Z
ddlZddlZddlZe��ZdaGdd�d�Zd	d
�Ze
�e�dZdZGd
d�de�ZGdd�d�Zdd�ZGdd�de�ZGdd�de�ZGdd�de�Z Gdd�de	�Z!dd�Z"dd�Z#d-dd �Z$d!d"�Z%Gd#d$�d$e
j&�Z'da(da)d%d&�Z*d'd(�Z+Gd)d*�d*ej,�Z-Gd+d,�d,ej.�Z/dS).z"Brian Quinlan (brian@sweetapp.com)�N)�_base)�Queue)�partialFc@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�
_ThreadWakeupcCsd|_tjdd�\|_|_dS)NF)�duplex)�_closed�mp�Pipe�_reader�_writer��self�r�;/opt/imh-python/lib/python3.9/concurrent/futures/process.py�__init__Csz_ThreadWakeup.__init__cCs$|js d|_|j��|j��dS�NT)rr�closer
rrrrrGs
z_ThreadWakeup.closecCs|js|j�d�dS)N�)rr�
send_bytesrrrr�wakeupMsz_ThreadWakeup.wakeupcCs |js|j��r|j��qdS�N)rr
�poll�
recv_bytesrrrr�clearQs
z_ThreadWakeup.clearN)�__name__�
__module__�__qualname__rrrrrrrrrBsrcCs@datt���}|D]\}}|��q|D]\}}|��q*dSr)�_global_shutdown�list�_threads_wakeups�itemsr�join)r �_�
thread_wakeup�trrr�_python_exitWs
r%��=c@seZdZdd�Zdd�ZdS)�_RemoteTracebackcCs
||_dSr��tb)r
r*rrrrwsz_RemoteTraceback.__init__cCs|jSrr)rrrr�__str__ysz_RemoteTraceback.__str__N)rrrrr+rrrrr(vsr(c@seZdZdd�Zdd�ZdS)�_ExceptionWithTracebackcCs0t�t|�||�}d�|�}||_d||_dS)N�z

"""
%s""")�	traceback�format_exception�typer!�excr*)r
r1r*rrrr}s
z _ExceptionWithTraceback.__init__cCst|j|jffSr)�_rebuild_excr1r*rrrr�
__reduce__�sz"_ExceptionWithTraceback.__reduce__N)rrrrr3rrrrr,|sr,cCst|�|_|Sr)r(�	__cause__)r1r*rrrr2�s
r2c@seZdZdd�ZdS)�	_WorkItemcCs||_||_||_||_dSr)�future�fn�args�kwargs)r
r6r7r8r9rrrr�sz_WorkItem.__init__N�rrrrrrrrr5�sr5c@seZdZddd�ZdS)�_ResultItemNcCs||_||_||_dSr)�work_id�	exception�result)r
r<r=r>rrrr�sz_ResultItem.__init__)NNr:rrrrr;�sr;c@seZdZdd�ZdS)�	_CallItemcCs||_||_||_||_dSr)r<r7r8r9)r
r<r7r8r9rrrr�sz_CallItem.__init__Nr:rrrrr?�sr?cs*eZdZd�fdd�	Z�fdd�Z�ZS)�
_SafeQueuercs&||_||_||_t�j||d�dS)N)�ctx)�pending_work_items�
shutdown_lockr#�superr)r
�max_sizerArBrCr#��	__class__rrr�sz_SafeQueue.__init__cs�t|t�r�t�t|�||j�}td�d�|���|_	|j
�|jd�}|j
�|j��Wd�n1sj0Y|dur�|j�|�nt��||�dS)Nz

"""
{}"""r-)�
isinstancer?r.r/r0�
__traceback__r(�formatr!r4rB�popr<rCr#rr6�
set_exceptionrD�_on_queue_feeder_error)r
�e�objr*�	work_itemrFrrrM�s
(z!_SafeQueue._on_queue_feeder_error)r)rrrrrM�
__classcell__rrrFrr@�sr@cgs,t|�}tt�||��}|s dS|VqdSr)�zip�tuple�	itertools�islice)�	chunksize�	iterables�it�chunkrrr�_get_chunks�s
rZcs�fdd�|D�S)Ncsg|]}�|��qSrr)�.0r8�r7rr�
<listcomp>�rz"_process_chunk.<locals>.<listcomp>r)r7rYrr\r�_process_chunk�s	r^c
Cs`z|�t|||d��WnBtyZ}z*t||j�}|�t||d��WYd}~n
d}~00dS)N)r>r=�r=)�putr;�
BaseExceptionr,rI)�result_queuer<r>r=rNr1rrr�_sendback_result�s
�rcc
Cs�|dur:z||�Wn$ty8tjjddd�YdS0|jdd�}|dur`|�t���dSz|j|j	i|j
��}Wn@ty�}z(t||j�}t
||j|d�WYd}~nd}~00t
||j|d�~~q:dS)NzException in initializer:T)�exc_info��blockr_)r>)rar�LOGGER�critical�getr`�os�getpidr7r8r9r,rIrcr<)�
call_queuerb�initializer�initargs�	call_item�rrNr1rrr�_process_worker�s$
&rqcsleZdZ�fdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
�ZS)�_ExecutorManagerThreadcsf|j|_|j|_|j|jfdd�}t�||�|_|j|_|j	|_
|j|_|j
|_|j|_t���dS)NcSs<tj�d�|�|��Wd�n1s.0YdS)Nz?Executor collected: triggering callback for QueueManager wakeup)r�util�debugr)r"r#rCrrr�
weakref_cbsz3_ExecutorManagerThread.__init__.<locals>.weakref_cb)�_executor_manager_thread_wakeupr#�_shutdown_lockrC�weakref�ref�executor_reference�
_processes�	processes�_call_queuerl�
_result_queuerb�	_work_ids�work_ids_queue�_pending_work_itemsrBrDr)r
�executorrurFrrrs	�
z_ExecutorManagerThread.__init__cCs�|��|��\}}}|r(|�|�dS|durX|�|�~|��}|durV|j��~|��r|��|j	s|�
�dSqdSr)�add_call_item_to_queue�wait_result_broken_or_wakeup�terminate_broken�process_result_itemrz�_idle_worker_semaphore�release�is_shutting_down�flag_executor_shutting_downrB�join_executor_internals)r
�result_item�	is_broken�causer�rrr�run7s"


z_ExecutorManagerThread.runcCs~|j��rdSz|jjdd�}Wntjy6YdS0|j|}|j��rn|jj	t
||j|j|j
�dd�q|j|=qqdS)NFreT)rl�fullr�ri�queue�EmptyrBr6�set_running_or_notify_cancelr`r?r7r8r9)r
r<rPrrrr�Ws"



��z-_ExecutorManagerThread.add_call_item_to_queuec

Cs�|jj}|jj}||g}dd�|j��D�}tj�||�}d}d}d}||vr�z|��}d}Wq�t	y�}	z t
�t|	�|	|	j
�}WYd}	~	q�d}	~	00n||vr�d}|j�|j��Wd�n1s�0Y|||fS)NcSsg|]
}|j�qSr)�sentinel�r[�prrrr]xrzG_ExecutorManagerThread.wait_result_broken_or_wakeup.<locals>.<listcomp>TF)rbr
r#r|�valuesr�
connection�wait�recvrar.r/r0rIrCr)
r
�
result_reader�
wakeup_reader�readers�worker_sentinels�readyr�r�r�rNrrrr�ns&,(z3_ExecutorManagerThread.wait_result_broken_or_wakeupcCsrt|t�r2|j�|�}|��|jsn|��dSn<|j�|jd�}|durn|jr`|j	�
|j�n|j	�|j�dSr)
rH�intr|rKr!r�rBr<r=r6rL�
set_resultr>)r
r�r�rPrrrr��s
z*_ExecutorManagerThread.process_result_itemcCs|��}tp|dup|jSr)rzr�_shutdown_thread)r
r�rrrr��s�z'_ExecutorManagerThread.is_shutting_downcCs�|��}|dur d|_d|_d}td�}|durHtdd�|��d��|_|j��D]\}}|j	�
|�~qR|j��|j�
�D]}|��q~|��dS)NzKA child process terminated abruptly, the process pool is not usable anymoreTz^A process in the process pool was terminated abruptly while the future was running or pending.z
'''
r-z''')rz�_brokenr��BrokenProcessPoolr(r!r4rBr r6rLrr|r��	terminater�)r
r�r��bper<rPr�rrrr��s"�

z'_ExecutorManagerThread.terminate_brokencCs�|��}|dur|d|_|jr|i}|j��D]\}}|j��s*|||<q*||_z|j��WqLt	j
yrYqvYqL0qLd|_dS)NTF)rzr��_cancel_pending_futuresrBr r6�cancelr��
get_nowaitr�r�)r
r��new_pending_work_itemsr<rPrrrr��s

z2_ExecutorManagerThread.flag_executor_shutting_downc	Csl|��}d}||krh|��dkrht||�D]8}z|j�d�|d7}Wq,tjybYqYq,0q,qdS)Nrr&)�get_n_children_alive�rangerl�
put_nowaitr��Full)r
�n_children_to_stop�n_sentinels_sent�irrr�shutdown_workers�s
�z'_ExecutorManagerThread.shutdown_workerscCsh|��|j��|j��|j�|j��Wd�n1sB0Y|j��D]}|��qVdSr)	r�rlr�join_threadrCr#r|r�r!)r
r�rrrr��s

(z._ExecutorManagerThread.join_executor_internalscCstdd�|j��D��S)Ncss|]}|��VqdSr)�is_aliver�rrr�	<genexpr>
rz>_ExecutorManagerThread.get_n_children_alive.<locals>.<genexpr>)�sumr|r�rrrrr�sz+_ExecutorManagerThread.get_n_children_alive)rrrrr�r�r�r�r�r�r�r�r�r�rQrrrFrrrs+ 
&rrc	Cshtrtrtt��dazt�d�}Wnttfy:YdS0|dkrHdS|dkrTdSd|att��dS)NT�SC_SEM_NSEMS_MAX����z@system provides too few semaphores (%d available, 256 necessary))�_system_limits_checked�_system_limited�NotImplementedErrorrj�sysconf�AttributeError�
ValueError)�	nsems_maxrrr�_check_system_limitss �r�ccs&|D]}|��|r|��VqqdSr)�reverserK)�iterable�elementrrr�_chain_from_iterable_of_lists)sr�c@seZdZdS)r�N)rrrrrrrr�5sr�csneZdZddd�Zdd�Zdd�Zd	d
�Zejjj	e_	ddd��fd
d�
Z
ddd�dd�Zejjj	e_	�ZS)�ProcessPoolExecutorNrcCs6t�|dur6t��pd|_tjdkrntt|j�|_n8|dkrHtd��n tjdkrh|tkrhtdt����||_|dur~t	�
�}||_|dur�t|�s�t
d��||_||_d|_i|_d|_t��|_t�d�|_d|_d|_i|_d|_t�|_|jt}t||j|j|j|jd�|_ d	|j _!|�"�|_#t$�%�|_&dS)
Nr&�win32rz"max_workers must be greater than 0zmax_workers must be <= zinitializer must be a callableF)rErArBrCr#T)'r�rj�	cpu_count�_max_workers�sys�platform�min�_MAX_WINDOWS_WORKERSr�r�get_context�_mp_context�callable�	TypeError�_initializer�	_initargs�_executor_manager_threadr{r��	threading�Lockrw�	Semaphorer�r��_queue_countr�r�rrv�EXTRA_QUEUED_CALLSr@r}�
_ignore_epipe�SimpleQueuer~r�rr)r
�max_workers�
mp_contextrmrn�
queue_sizerrrr=sV

�

��


�
zProcessPoolExecutor.__init__cCs.|jdur*t|�|_|j��|jt|j<dSr)r�rr�startrvrrrrr�_start_executor_manager_thread�s



�z2ProcessPoolExecutor._start_executor_manager_threadcCs^|jjdd�rdSt|j�}||jkrZ|jjt|j|j	|j
|jfd�}|��||j|j
<dS)NF)�blocking)�targetr8)r��acquire�lenr{r�r��Processrqr}r~r�r�r��pid)r
�
process_countr�rrr�_adjust_process_count�s

��z)ProcessPoolExecutor._adjust_process_countcOs�|j��|jrt|j��|jr&td��tr2td��t��}t||||�}||j	|j
<|j�|j
�|j
d7_
|j
��|��|��|Wd�S1s�0YdS)Nz*cannot schedule new futures after shutdownz6cannot schedule new futures after interpreter shutdownr&)rwr�r�r��RuntimeErrorrr�Futurer5r�r�rr`rvrr�r�)r
r7r8r9�f�wrrr�submit�s 

zProcessPoolExecutor.submitr&)�timeoutrVcs:|dkrtd��t�jtt|�t|d|i�|d�}t|�S)Nr&zchunksize must be >= 1.rV)r�)r�rD�maprr^rZr�)r
r7r�rVrW�resultsrFrrr��s�zProcessPoolExecutor.mapTF)�cancel_futurescCs�|j�0||_d|_|jdur(|j��Wd�n1s<0Y|jdur^|r^|j��d|_d|_|jdur�|r�|j�	�d|_d|_
d|_dSr)rwr�r�rvrr�r!r}r~rr{)r
r�r�rrr�shutdown�s
(

zProcessPoolExecutor.shutdown)NNNr)T)
rrrrr�r�r�r�Executor�__doc__r�r�rQrrrFrr�<s�
Qr�)NN)0�
__author__rj�concurrent.futuresrr��multiprocessingr�multiprocessing.connection�multiprocessing.queuesrr�rx�	functoolsrrTr�r.�WeakKeyDictionaryrrrr%�_register_atexitr�r��	Exceptionr(r,r2�objectr5r;r?r@rZr^rcrq�Threadrrr�r�r�r��BrokenExecutorr�r�r�rrrr�<module>.sN
	


)