Your IP : 18.227.46.54


Current Path : /opt/alt/python35/lib64/python3.5/multiprocessing/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib64/python3.5/multiprocessing/__pycache__/util.cpython-35.opt-1.pyc



��Yfy-�@sTddlZddlZddlZddlZddlZddlZddlmZddlm	Z	ddddd	d
ddd
ddddddgZ
dZdZdZ
dZdZdZdZdadadd�Zdd�Zdd�Zdd�Zdd	�Zdd d
�Zd!d�Zej�Zej�Zd"d#�Zd$d�Z iZ!ej�Z"Gd%d�de#�Z$dd&d'�Z%d(d
�Z&da'eee%e	j(e	j)d)d*�Z*ej+e*�Gd+d�de#�Z,Gd,d�dej-�Z.yej/d-�Z0Wne1k
r+d.Z0YnXd/d�Z2d0d1�Z3d2d3�Z4dS)4�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||�dS)N)�_logger�logr)�msg�args�r�9/opt/alt/python35/lib64/python3.5/multiprocessing/util.pyr,scGstrtjt||�dS)N)rr�DEBUG)rrrrrr0scGstrtjt||�dS)N)rr�INFO)rrrrrr4scGstrtjt||�dS)N)rrr)rrrrrr8sc
Cs�ddl}|j�z�ts�|jt�adt_ttd�rctjt	�tj
t	�n2tjj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
	
cCsgddl}t�}|jt�}|j�}|j|�|j|�|r]|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	


cCs�tj�jjd�}|dkr�ddl}ddl}|jdd�}td|�td|j	d|gdd	�|tj�jd<|S)
N�tempdirr�prefixzpymp-zcreated temp directory %sr�exitpriority�di����)
r�current_processZ_config�get�shutil�tempfileZmkdtemprrZrmtree)r,r2r3rrrrms
cCs�ttj��}|j�x`|D]X\\}}}}y||�Wq#tk
rz}ztd|�WYdd}~Xq#Xq#WdS)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@sjeZdZdZfdddd�Zdeeejdd�Z	dd�Z
d	d
�Zdd�ZdS)
rzA
    Class which supports object finalization using weakrefs
    NcCsz|dk	r$tj||�|_n||_||_|p?i|_|tt�f|_t	j
�|_|t|j<dS)N)
�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�Yn�X|j|�krR|d�d}n4|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)rH�KeyErrorrKrDrErFrC)rM�wrrLrrJ�resrrr�__call__�s

	%zFinalize.__call__cCsLyt|j=Wntk
r"Yn&Xd|_|_|_|_|_dS)z3
        Cancel finalization of the object
        N)rLrHrQrCrDrErF)rMrrr�cancel�s

zFinalize.cancelcCs
|jtkS)zS
        Return whether this finalizer is still waiting to invoke callback
        )rHrL)rMrrr�still_active�szFinalize.still_activecCs�y|j�}Wnttfk
r0d}YnX|dkrKd|jjSd|jjt|jd|j�f}|jr�|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=�>)rC�AttributeError�	TypeError�	__class__rW�getattrrDrE�strrFrH)rMr;�xrrr�__repr__�s 			zFinalize.__repr__)
rW�
__module__�__qualname__�__doc__rPrLrrIrJrTrUrVr_rrrrr�scs�tdkrdS�dkr+dd��n�fdd���fdd�tt�D�}|jdd�xl|D]d}tj|�}|dk	rstd	|�y|�Wqstk
r�d
dl}|j�YqsXqsW�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)rc)�minpriorityrrrd�scs"g|]}�|�r|�qSrr)�.0�key)�frr�
<listcomp>�s	z#_run_finalizers.<locals>.<listcomp>�reverseTz
calling %sr)	rLr4r7r1rr8�	traceback�	print_exc�clear)re�keysrgZ	finalizerrkr)rhrer�_run_finalizers�s$


rocCstptdkS)z6
    Returns true if the process is shutting down
    N)�_exitingrrrrr
scCs�ts�da|d�|d�|d�|�dk	r�x7|�D],}|jrC|d|j�|jj�qCWx+|�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)rpZdaemon�nameZ_popenZ	terminate�join)rrro�active_childrenr0rcrrrr%s	


	
r%c@s@eZdZdd�Zdd�Zdd�Zdd�Zd	S)
rcCs|j�t|tj�dS)N)�_resetrr)rMrrrrPKs
zForkAwareThreadLock.__init__cCs1tj�|_|jj|_|jj|_dS)N)�	threadingZLock�_lock�acquire�release)rMrrrrtOszForkAwareThreadLock._resetcCs
|jj�S)N)rv�	__enter__)rMrrrryTszForkAwareThreadLock.__enter__cGs|jj|�S)N)rv�__exit__)rMrrrrrzWszForkAwareThreadLock.__exit__N)rWr`rarPrtryrzrrrrrJsc@s(eZdZdd�Zdd�ZdS)rcCst|dd��dS)NcSs
|jj�S)N)�__dict__rm)r;rrrrd]sz)ForkAwareLocal.__init__.<locals>.<lambda>)r)rMrrrrP\szForkAwareLocal.__init__cCst|�ffS)N)�type)rMrrr�
__reduce__^szForkAwareLocal.__reduce__N)rWr`rarPr}rrrrr[s�SC_OPEN_MAX�cCset|�dtg}|j�x>tt|�d�D]&}tj||d||d�q7WdS)Nr���)r4�MAXFDr7�range�lenrI�
closerange)Zfds�irrrrjs
cCs�tjdkrdSytjj�Wnttfk
r>YnXyPtjtjtj�}yt|dd�t_Wntj|��YnXWnttfk
r�YnXdS)N�closefdF)	�sys�stdin�close�OSError�
ValueErrorrI�open�devnull�O_RDONLY)�fdrrr�_close_stdints
r�cCs�ddl}tttt|���}tj�\}}zM|j|tj|�gd|ddddddd	d
||ddd�SWdtj	|�tj	|�XdS)NrTrFr�r�r�r�r�r�)
�_posixsubprocess�tuple�sorted�map�intrI�pipeZ	fork_exec�fsencoder�)�pathrZpassfdsr�Zerrpipe_readZ
errpipe_writerrr�spawnv_passfds�s
r�)5rI�	itertoolsr�rAr$ru�
subprocessr�r�__all__ZNOTSETrrrrr"r)rr*rrrrr	r
r�WeakValueDictionaryr5�countr?r=rrLrG�objectrror
rprsr0r%r&rZlocalr�sysconfr�r8rr�r�rrrr�<module>
sd		S,	(





?>