MINI MINI MANI MO
3
  \n.                 @   s  d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZ ddlm	Z	 ddddd	d
ddd
ddddddgZ
d ZdZdZ
dZdZdZdZdadadd Zdd Zdd Zdd Zdd	 Zd6d d
Zd!d Zej Zej Zd"d# Zd$d Z i Z!ej Z"G d%d de#Z$d7d&d'Z%d(d
 Z&da'eee%e	j(e	j)fd)d*Z*ej+e* G d+d de#Z,G d,d dej-Z.ye j/d-Z0W n e1k
r   d.Z0Y nX d/d Z2d0d1 Z3d2d3 Z4d4d5 Z5dS )8    N)_args_from_interpreter_flags   )process	sub_debugdebuginfosub_warning
get_logger
log_to_stderrget_temp_dirregister_after_fork
is_exitingFinalizeForkAwareThreadLockForkAwareLocalclose_all_fds_exceptSUBDEBUG
SUBWARNING   
         Zmultiprocessingz+[%(levelname)s/%(processName)s] %(message)sFc             G   s   t rt jt| f|  d S )N)_loggerlogr   )msgargs r   ,/usr/lib64/python3.6/multiprocessing/util.pyr   ,   s    c             G   s   t rt jt| f|  d S )N)r   r   DEBUG)r   r   r   r   r   r   0   s    c             G   s   t rt jt| f|  d S )N)r   r   INFO)r   r   r   r   r   r   4   s    c             G   s   t rt jt| f|  d S )N)r   r   r   )r   r   r   r   r   r   8   s    c           
   C   s|   ddl } | j  z\tsj| jtadt_ttdrFtjt	 tj
t	 n$tjjt	f i f tjj
t	f i f W d| j  X tS )z0
    Returns logger used by multiprocessing
    r   N
unregister)loggingZ_acquireLockr   Z	getLoggerLOGGER_NAMEZ	propagatehasattratexitr    _exit_functionregisterZ
_exithandlersremoveappendZ_releaseLock)r!   r   r   r   r	   <