Your IP : 3.144.232.206


Current Path : /lib64/python3.6/multiprocessing/__pycache__/
Upload File :
Current File : //lib64/python3.6/multiprocessing/__pycache__/util.cpython-36.pyc

3


 \n.�@s�ddlZddlZddlZddlZddlZddlZddlmZddlm	Z	ddddd	d
ddd
ddddddgZ
dZdZdZ
dZdZdZdZdadadd�Zdd�Zdd�Zdd�Zdd	�Zd6d d
�Zd!d�Zej�Zej�Zd"d#�Zd$d�Z iZ!ej�Z"Gd%d�de#�Z$d7d&d'�Z%d(d
�Z&da'eee%e	j(e	j)fd)d*�Z*ej+e*�Gd+d�de#�Z,Gd,d�dej-�Z.yej/d-�Z0Wne1k
�r�d.Z0YnXd/d�Z2d0d1�Z3d2d3�Z4d4d5�Z5dS)8�N)�_args_from_interpreter_flags�)�process�	sub_debug�debug�info�sub_warning�
get_logger�
log_to_stderr�get_temp_dir�register_after_fork�
is_exiting�Finalize�ForkAwareThreadLock�ForkAwareLocal�close_all_fds_except�SUBDEBUG�
SUBWARNING��
��Zmultiprocessingz+[%(levelname)s/%(processName)s] %(message)sFcGstrtjt|f|��dS)N)�_logger�logr)�msg�args�r�/usr/lib64/python3.6/util.pyr,scGstrtjt|f|��dS)N)rr�DEBUG)rrrrrr0scGstrtjt|f|��dS)N)rr�INFO)rrrrrr4scGstrtjt|f|��dS)N)rrr)rrrrrr8sc
Cs|ddl}|j�z\tsj|jt�adt_ttd�rFtjt	�tj
t	�n$tjjt	fif�tjj
t	fif�Wd|j�XtS)z0
    Returns logger used by multiprocessing
    rN�
unregister)�loggingZ_acquireLockrZ	getLogger�LOGGER_NAMEZ	propagate�hasattr�atexitr �_exit_function�registerZ
_exithandlers�remove�appendZ_releaseLock)r!rrrr	<s



cCsJddl}t�}|jt�}|j�}|j|�|j|�|rB|j|�dat	S)zB
    Turn on logging and add a handler which prints to stderr
    rNT)
r!r	Z	Formatter�DEFAULT_LOGGING_FORMATZ
StreamHandlerZsetFormatterZ
addHandlerZsetLevel�_log_to_stderrr)�levelr!ZloggerZ	formatterZhandlerrrrr
Ws



cCsdtj�jjd�}|dkr`ddl}ddl}|jdd�}td|�td|j	|gdd�|tj�jd<|S)	N�tempdirrzpymp-)�prefixzcreated temp directory %s�d)r�exitpriorityi����)
r�current_processZ_config�get�shutil�tempfileZmkdtemprrZrmtree)r,r2r3rrrrms
cCsjttj��}|j�xP|D]H\\}}}}y||�Wqtk
r`}ztd|�WYdd}~XqXqWdS)Nz after forker raised exception %s)�list�_afterfork_registry�items�sort�	Exceptionr)r6�indexZident�func�obj�errr�_run_after_forkerssr=cCs|ttt�t|�|f<dS)N)r5�next�_afterfork_counter�id)r;r:rrrr�sc@sLeZdZdZfddfdd�Zdeeejfdd�Z	dd�Z
d	d
�Zdd�ZdS)
rzA
    Class which supports object finalization using weakrefs
    NcCsx|dkst|�tkst�|dk	r0tj||�|_n|dk	s<t�||_||_|pNi|_|t	t
�f|_tj
�|_|t|j<dS)N)�type�int�AssertionError�weakref�ref�_weakref�	_callback�_args�_kwargsr>�_finalizer_counter�_key�os�getpid�_pid�_finalizer_registry)�selfr;�callbackr�kwargsr/rrr�__init__�s

zFinalize.__init__c
Cs�y||j=Wntk
r(|d�YnbX|j|�krD|d�d}n$|d|j|j|j�|j|j|j�}d|_|_|_|_|_|SdS)zQ
        Run the callback unless it has already been called or cancelled
        zfinalizer no longer registeredz+finalizer ignored because different processNz/finalizer calling %s with args %s and kwargs %s)rK�KeyErrorrNrGrHrIrF)rP�wrrOrrM�resrrr�__call__�szFinalize.__call__cCsDyt|j=Wntk
r Yn Xd|_|_|_|_|_dS)z3
        Cancel finalization of the object
        N)rOrKrTrFrGrHrI)rPrrr�cancel�s
zFinalize.cancelcCs
|jtkS)zS
        Return whether this finalizer is still waiting to invoke callback
        )rKrO)rPrrr�still_active�szFinalize.still_activecCs�y|j�}Wnttfk
r(d}YnX|dkr>d|jjSd|jjt|jd|j�f}|jrr|dt|j�7}|j	r�|dt|j	�7}|j
ddk	r�|dt|j
d�7}|dS)	Nz<%s object, dead>z<%s object, callback=%s�__name__z, args=z	, kwargs=rz, exitprority=�>)rF�AttributeError�	TypeError�	__class__rZ�getattrrGrH�strrIrK)rPr;�xrrr�__repr__�s 
zFinalize.__repr__)
rZ�
__module__�__qualname__�__doc__rSrOrrLrMrWrXrYrbrrrrr�scs�tdkrdS�dkrdd��n�fdd���fdd�tt�D�}|jdd�xX|D]P}tj|�}|dk	rRtd	|�y
|�WqRtk
r�d
dl}|j�YqRXqRW�dkr�tj�dS)z�
    Run all finalizers whose exit priority is not None and at least minpriority

    Finalizers with highest priority are called first; finalizers with
    the same priority will be called in reverse order of creation.
    NcSs|ddk	S)Nrr)�prrr�<lambda>�sz!_run_finalizers.<locals>.<lambda>cs|ddk	o|d�kS)Nrr)rf)�minpriorityrrrg�scsg|]}�|�r|�qSrr)�.0�key)�frr�
<listcomp>�sz#_run_finalizers.<locals>.<listcomp>T)�reversez
calling %sr)	rOr4r7r1rr8�	traceback�	print_exc�clear)rh�keysrj�	finalizerrnr)rkrhr�_run_finalizers�s$




rscCstp
tdkS)z6
    Returns true if the process is shutting down
    N)�_exitingrrrrr
scCs�ts�da|d�|d�|d�|�dk	rzx*|�D] }|jr2|d|j�|jj�q2Wx"|�D]}|d|j�|j�q^W|d�|�dS)NTzprocess shutting downz2running all "atexit" finalizers with priority >= 0rz!calling terminate() for daemon %szcalling join() for process %sz)running the remaining "atexit" finalizers)rtZdaemon�nameZ_popenZ	terminate�join)rrrs�active_childrenr0rfrrrr%s	
r%c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
rcCs|j�t|tj�dS)N)�_resetrr)rPrrrrSKszForkAwareThreadLock.__init__cCs"tj�|_|jj|_|jj|_dS)N)�	threadingZLock�_lock�acquire�release)rPrrrrxOs

zForkAwareThreadLock._resetcCs
|jj�S)N)rz�	__enter__)rPrrrr}TszForkAwareThreadLock.__enter__cGs|jj|�S)N)rz�__exit__)rPrrrrr~WszForkAwareThreadLock.__exit__N)rZrcrdrSrxr}r~rrrrrJsc@seZdZdd�Zdd�ZdS)rcCst|dd��dS)NcSs
|jj�S)N)�__dict__rp)r;rrrrg]sz)ForkAwareLocal.__init__.<locals>.<lambda>)r)rPrrrrS\szForkAwareLocal.__init__cCst|�ffS)N)rA)rPrrr�
__reduce__^szForkAwareLocal.__reduce__N)rZrcrdrSr�rrrrr[s�SC_OPEN_MAX�cCsft|�dtg}|j�|dtks,td��x4tt|�d�D] }tj||d||d�q>WdS)Nrzfd too large���r�)r4�MAXFDr7rC�range�lenrL�
closerange)Zfds�irrrrjs
cCs�tjdkrdSytjj�Wnttfk
r4YnXy@tjtjtj�}yt|dd�t_Wntj|��YnXWnttfk
r�YnXdS)NF)�closefd)	�sys�stdin�close�OSError�
ValueErrorrL�open�devnull�O_RDONLY)�fdrrr�_close_stdints

r�cCsTytjj�Wnttfk
r&YnXytjj�Wnttfk
rNYnXdS)N)r��stdout�flushr\r��stderrrrrr�_flush_std_streams�sr�cCstddl}tttt|���}tj�\}}z2|j|tj|�gd|ddddddd	d
||ddd�Stj	|�tj	|�XdS)NrTrFr�r�r�r�r�r�)
�_posixsubprocess�tuple�sorted�maprBrL�pipeZ	fork_exec�fsencoder�)�pathrZpassfdsr�Zerrpipe_readZ
errpipe_writerrr�spawnv_passfds�s

r�)N)N)6rL�	itertoolsr�rDr$ry�
subprocessr�r�__all__ZNOTSETrrrrr"r)rr*rrrrr	r
r�WeakValueDictionaryr5�countr?r=rrOrJ�objectrrsr
rtrwr0r%r&rZlocalr�sysconfr�r8rr�r�r�rrrr�<module>
sf


	S
,(