HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.10/concurrent/futures/__pycache__/process.cpython-310.opt-2.pyc
o

�i�|�@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�7/usr/local/lib/python3.10/concurrent/futures/process.py�__init__Csz_ThreadWakeup.__init__cCs(|jsd|_|j��|j��dSdS�NT)rr�closer
rrrrrGs

�z_ThreadWakeup.closecCs|js|j�d�dSdS)N�)rr�
send_bytesrrrr�wakeupMs�z_ThreadWakeup.wakeupcCs0|js|j��r|j��|j��sdSdSdS�N)rr
�poll�
recv_bytesrrrr�clearQs

��z_ThreadWakeup.clearN)�__name__�
__module__�__qualname__rrrrrrrrrBs
rcCs@datt���}|D]\}}|��q
|D]\}}|��qdSr)�_global_shutdown�list�_threads_wakeups�itemsr�join)r �_�
thread_wakeup�trrr�_python_exitWs

�r%��=c@�eZdZdd�Zdd�ZdS)�_RemoteTracebackcCs
||_dSr��tb)r
r+rrrrws
z_RemoteTraceback.__init__cCs|jSrr*rrrr�__str__ysz_RemoteTraceback.__str__N)rrrrr,rrrrr)vsr)c@r()�_ExceptionWithTracebackcCs8t�t|�||�}d�|�}||_d|j_d||_dS)N�z

"""
%s""")�	traceback�format_exception�typer!�exc�
__traceback__r+)r
r2r+rrrr}s

z _ExceptionWithTraceback.__init__cCst|j|jffSr)�_rebuild_excr2r+rrrr�
__reduce__�sz"_ExceptionWithTraceback.__reduce__N)rrrrr5rrrrr-|sr-cCst|�|_|Sr)r)�	__cause__)r2r+rrrr4�s
r4c@�eZdZdd�ZdS)�	_WorkItemcC�||_||_||_||_dSr)�future�fn�args�kwargs)r
r:r;r<r=rrrr��
z_WorkItem.__init__N�rrrrrrrrr8��r8c@seZdZddd�ZdS)�_ResultItemNcCs||_||_||_dSr)�work_id�	exception�result)r
rBrCrDrrrr�s
z_ResultItem.__init__�NNr?rrrrrA�srAc@r7)�	_CallItemcCr9r)rBr;r<r=)r
rBr;r<r=rrrr�r>z_CallItem.__init__Nr?rrrrrF�r@rFcs,eZdZ	d�fdd�	Z�fdd�Z�ZS)�
_SafeQueuercs&||_||_||_t�j||d�dS)N)�ctx)�pending_work_items�
shutdown_lockr#�superr)r
�max_sizerHrIrJr#��	__class__rrr�sz_SafeQueue.__init__cs�t|t�rHt�t|�||j�}td�d�|���|_	|j
�|jd�}|j
�
|j��Wd�n1s5wY|durF|j�|�dSdSt��||�dS)Nz

"""
{}"""r.)�
isinstancerFr/r0r1r3r)�formatr!r6rI�poprBrJr#rr:�
set_exceptionrK�_on_queue_feeder_error)r
�e�objr+�	work_itemrMrrrS�s
��z!_SafeQueue._on_queue_feeder_error)r)rrrrrS�
__classcell__rrrMrrG�srGcgs.�	t|�}	tt�||��}|sdS|Vqr)�zip�tuple�	itertools�islice)�	chunksize�	iterables�it�chunkrrr�_get_chunks�s��r`cs	�fdd�|D�S)Ncsg|]}�|��qSrr)�.0r<�r;rr�
<listcomp>�sz"_process_chunk.<locals>.<listcomp>r)r;r_rrbr�_process_chunk�srdc
Csb	z
|�t|||d��WdSty0}zt||j�}|�t||d��WYd}~dSd}~ww)N)rDrC�rC)�putrA�
BaseExceptionr-r3)�result_queuerBrDrCrTr2rrr�_sendback_result�s
� ��ric
Cs�	|durz||�Wntytjjddd�YdSw	|jdd�}|dur2|�t���dSz|j|j	i|j
��}Wn ty^}zt||j�}t
||j|d�WYd}~nd}~wwt
||j|d�~~q)NzException in initializer:T)�exc_info��blockre)rD)rgr�LOGGER�critical�getrf�os�getpidr;r<r=r-r3rirB)�
call_queuerh�initializer�initargs�	call_item�rrTr2rrr�_process_worker�s0����rwcsneZdZ	�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�dS1swYdS)Nz?Executor collected: triggering callback for QueueManager wakeup)r�util�debugr)r"r#rJrrr�
weakref_cbs
"�z3_ExecutorManagerThread.__init__.<locals>.weakref_cb)�_executor_manager_thread_wakeupr#�_shutdown_lockrJ�weakref�ref�executor_reference�
_processes�	processes�_call_queuerr�
_result_queuerh�	_work_ids�work_ids_queue�_pending_work_itemsrIrKr)r
�executorr{rMrrrs	
�z_ExecutorManagerThread.__init__cCs�	|��|��\}}}|r|�|�dS|dur-|�|�~|��}|dur,|j��~|��rB|��|��|j	sB|�
�dSqr)�add_call_item_to_queue�wait_result_broken_or_wakeup�terminate_broken�process_result_itemr��_idle_worker_semaphore�release�is_shutting_down�flag_executor_shutting_downrI�join_executor_internals)r
�result_item�	is_broken�causer�rrr�run:s(


�z_ExecutorManagerThread.runcCs|	|j��rdSz	|jjdd�}WntjyYdSw|j|}|j��r8|jj	t
||j|j|j
�dd�n|j|=qq)NTFrk)rr�fullr�ro�queue�EmptyrIr:�set_running_or_notify_cancelrfrFr;r<r=)r
rBrVrrrr�_s(
�


���z-_ExecutorManagerThread.add_call_item_to_queuec

Cs�|jj}|jj}||g}dd�t|j���D�}tj�||�}d}d}d}||vrOz|�	�}d}Wn"t
yN}	zt�t
|	�|	|	j�}WYd}	~	nd}	~	ww||vrUd}|j�
|j��Wd�n1shwY|||fS)NcSsg|]}|j�qSr)�sentinel�ra�prrrrc�szG_ExecutorManagerThread.wait_result_broken_or_wakeup.<locals>.<listcomp>TF)rhr
r#rr��valuesr�
connection�wait�recvrgr/r0r1r3rJr)
r
�
result_reader�
wakeup_reader�readers�worker_sentinels�readyr�r�r�rTrrrr�vs, ���
z3_ExecutorManagerThread.wait_result_broken_or_wakeupcCszt|t�r|j�|�}|��|js|��dSdS|j�|jd�}|dur;|jr2|j	�
|j�dS|j	�|j�dSdSr)
rO�intr�rQr!r�rIrBrCr:rR�
set_resultrD)r
r�r�rVrrrr��s
��z*_ExecutorManagerThread.process_result_itemcCs|��}tp|dup|jSr)r�r�_shutdown_thread)r
r�rrrr��s�z'_ExecutorManagerThread.is_shutting_downcCs�|��}|durd|_d|_d}td�}|dur$tdd�|��d��|_|j��D]\}}|j	�
|�~q)|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''')r��_brokenr��BrokenProcessPoolr)r!r6rIr r:rRrr�r��	terminater�)r
r�r��bperBrVr�rrrr��s"�

z'_ExecutorManagerThread.terminate_brokencCs�|��}|dur?d|_|jrAi}|j��D]
\}}|j��s"|||<q||_	z|j��Wn
t	j
y8Ynwq'd|_dSdSdS)NTF)r�r��_cancel_pending_futuresrIr r:�cancelr��
get_nowaitr�r�)r
r��new_pending_work_itemsrBrVrrrr��s(
���
�z2_ExecutorManagerThread.flag_executor_shutting_downc	Cs�|��}d}||kr<|��dkr>t||�D]}z|j�d�|d7}Wqtjy/Ynw||kr@|��dksdSdSdSdS)Nrr&)�get_n_children_alive�rangerr�
put_nowaitr��Full)r
�n_children_to_stop�n_sentinels_sent�irrr�shutdown_workers�s ����z'_ExecutorManagerThread.shutdown_workerscCsh|��|j��|j��|j�
|j��Wd�n1s!wY|j��D]}|��q+dSr)	r�rrr�join_threadrJr#r�r�r!�r
r�rrrr�s

�
�z._ExecutorManagerThread.join_executor_internalscCstdd�|j��D��S)Ncss�|]}|��VqdSr)�is_aliver�rrr�	<genexpr>s�z>_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�rWrrrMrrxs+%
&rxc	Cs�trtrtt��dazddl}Wn
tydatt��wzt�d�}Wnttfy1YdSw|dkr8dS|dkr>dSd|att��)NTrzxThis Python build lacks multiprocessing.synchronize, usually due to named semaphores being unavailable on this platform.�SC_SEM_NSEMS_MAX����z@system provides too few semaphores (%d available, 256 necessary))	�_system_limits_checked�_system_limited�NotImplementedError�multiprocessing.synchronize�ImportErrorrp�sysconf�AttributeError�
ValueError)�multiprocessing�	nsems_maxrrr�_check_system_limitss0����r�ccs,�	|D]}|��|r|��V|sqdSr)�reverserQ)�iterable�elementrrr�_chain_from_iterable_of_lists9s�
���r�c@seZdZdS)r�N)rrrrrrrr�Esr�cs�eZdZ		ddd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Ze	j
jje_ddd��fdd�
Zddd�dd�Z
e	j
j
je
_�ZS)�ProcessPoolExecutorNrcCsJ	t�|durt��p
d|_tjdkrtt|j�|_n|dkr$td��tjdkr4|tkr4tdt����||_|dur?t	�
�}||_|jjdd�dk|_
|durXt|�sXtd	��||_||_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 <= F)�
allow_none�forkzinitializer must be a callable)rLrHrIrJr#T))r�rp�	cpu_count�_max_workers�sys�platform�min�_MAX_WINDOWS_WORKERSr�r�get_context�_mp_context�get_start_method�#_safe_to_dynamically_spawn_children�callable�	TypeError�_initializer�	_initargs�_executor_manager_threadr�r��	threading�Lockr}�	Semaphorer�r��_queue_countr�r�rr|�EXTRA_QUEUED_CALLSrGr��
_ignore_epipe�SimpleQueuer�r�rr�)r
�max_workers�
mp_contextrsrt�
queue_sizerrrrMs\
��
��


�
zProcessPoolExecutor.__init__cCs@|jdur|js|��t|�|_|j��|jt|j<dSdSr)r�r��_launch_processesrx�startr|rrrrr�_start_executor_manager_thread�s


��z2ProcessPoolExecutor._start_executor_manager_threadcCs6|jjdd�r	dSt|j�}||jkr|��dSdS)NF)�blocking)r��acquire�lenr�r��_spawn_process)r
�
process_countrrr�_adjust_process_count�s

�z)ProcessPoolExecutor._adjust_process_countcCs$tt|j�|j�D]}|��q	dSr)r�r�r�r�r�)r
r"rrrr��s
�z%ProcessPoolExecutor._launch_processescCs8|jjt|j|j|j|jfd�}|��||j|j	<dS)N)�targetr<)
r��Processrwr�r�r�r�r�r��pidr�rrrr��s��z"ProcessPoolExecutor._spawn_processcOs�|j�N|jrt|j��|jrtd��trtd��t��}t||||�}||j	|j
<|j�|j
�|j
d7_
|j
��|jrD|��|��|Wd�S1sTwYdS)Nz*cannot schedule new futures after shutdownz6cannot schedule new futures after interpreter shutdownr&)r}r�r�r��RuntimeErrorrr�Futurer8r�r�r�rfr|rr�r�r�)r
r;r<r=�f�wrrr�submit�s$

$�zProcessPoolExecutor.submitr&)�timeoutr\cs<	|dkr	td��t�jtt|�t|d|i�|d�}t|�S)Nr&zchunksize must be >= 1.r\)r�)r�rK�maprrdr`r�)r
r;r�r\r]�resultsrMrrr��s�zProcessPoolExecutor.mapTF)�cancel_futurescCs�|j�||_d|_|jdur|j��Wd�n1swY|jdur/|r/|j��d|_d|_|jdurA|rA|j�	�d|_d|_
d|_dSr)r}r�r�r|rr�r!r�r�rr�)r
r�rrrr�shutdowns 

��


zProcessPoolExecutor.shutdown)NNNr)T)rrrrr�r�r�r�r�r�Executor�__doc__r�rrWrrrMrr�Ls
�U

r�rE)0�
__author__rp�concurrent.futuresrr�r�r�multiprocessing.connection�multiprocessing.queuesrr�r~�	functoolsrrZr�r/�WeakKeyDictionaryrrrr%�_register_atexitr�r��	Exceptionr)r-r4�objectr8rArFrGr`rdrirw�Threadrxr�r�r�r��BrokenExecutorr�rr�rrrr�<module>sR*



)