]y-@sTddlZddlZddlZddlZddlZddlZddlmZddlm Z ddddd d d d d ddddddgZ dZ dZ dZ dZdZdZdZdadaddZddZddZddZdd Zdd d Zd!d ZejZejZd"d#Zd$d Z iZ!ejZ"Gd%dde#Z$dd&d'Z%d(d Z&da'eee%e j(e j)d)d*Z*ej+e*Gd+dde#Z,Gd,ddej-Z.yej/d-Z0Wne1k r+d.Z0YnXd/dZ2d0d1Z3d2d3Z4dS)4N)_args_from_interpreter_flags)process sub_debugdebuginfo sub_warning get_logger log_to_stderr get_temp_dirregister_after_fork is_exitingFinalizeForkAwareThreadLockForkAwareLocalclose_all_fds_exceptSUBDEBUG SUBWARNING multiprocessingz+[%(levelname)s/%(processName)s] %(message)sFcGstrtjt||dS)N)_loggerlogr)msgargsr)/opt/alt/python35/lib64/python3.5/util.pyr,scGstrtjt||dS)N)rrDEBUG)rrrrrr0scGstrtjt||dS)N)rrINFO)rrrrrr4scGstrtjt||dS)N)rrr)rrrrrr8sc Csddl}|jzts|jtadt_ttdrctjt tj t n2tj j t fiftj j t fifWd|jXtS)Nr unregister)logging _acquireLockr getLogger LOGGER_NAME propagatehasattratexitr!_exit_functionregister _exithandlersremoveappend _releaseLock)r"rrrr <s     cCsgddl}t}|jt}|j}|j||j||r]|j|dat S)NrT) r"r FormatterDEFAULT_LOGGING_FORMAT StreamHandler setFormatter addHandlersetLevel_log_to_stderrr)levelr"logger formatterhandlerrrrr Ws      cCstjjjd}|dkrddl}ddl}|jdd}td|td|j d|gdd |tjjd<|S) Ntempdirrprefixzpymp-zcreated temp directory %sr exitprioritydi) rcurrent_process_configgetshutiltempfilemkdtemprrrmtree)r:rArBrrrr ms  cCsttj}|jx`|D]X\\}}}}y||Wq#tk rz}ztd|WYdd}~Xq#Xq#WdS)Nz after forker raised exception %s)list_afterfork_registryitemssort Exceptionr)rGindexidentfuncobjerrr_run_after_forkerss rOcCs#|tttt||fz<%s object, callback=%s__name__z, args=z , kwargs=rz, exitprority=>) rUAttributeError TypeError __class__rigetattrrVrWstrrXrZ)r_rMxrrr__repr__s      zFinalize.__repr__) ri __module__ __qualname__rbr^rr[r\rfrgrhrqrrrrrs  c stdkrdSdkr+ddnfddfddttD}|jddxl|D]d}tj|}|dk rstd|y |Wqstk rd dl}|jYqsXqsWdkrtjdS) NcSs|ddk S)Nrr)prrrsz!_run_finalizers..cs|ddk o|dkS)Nrr)rt) minpriorityrrruscs"g|]}|r|qSrr).0key)frr s z#_run_finalizers..reverseTz calling %sr) r^rErHr@rrI traceback print_excclear)rvkeysrx finalizerr|r)ryrvr_run_finalizerss$         rcCstptdkS)N)_exitingrrrrr scCstsda|d|d|d|dk rx7|D],}|jrC|d|j|jjqCWx+|D] }|d|j|jq}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)rdaemonname_popen terminatejoin)rrractive_childrenr>rtrrrr)s      r)c@s@eZdZddZddZddZddZd S) rcCs|jt|tjdS)N)_resetr r)r_rrrrbKs zForkAwareThreadLock.__init__cCs1tj|_|jj|_|jj|_dS)N) threadingLock_lockacquirerelease)r_rrrrOszForkAwareThreadLock._resetcCs |jjS)N)r __enter__)r_rrrrTszForkAwareThreadLock.__enter__cGs|jj|S)N)r__exit__)r_rrrrrWszForkAwareThreadLock.__exit__N)rirrrsrbrrrrrrrrJs    c@s(eZdZddZddZdS)rcCst|dddS)NcSs |jjS)N)__dict__r~)rMrrrru]sz)ForkAwareLocal.__init__..)r )r_rrrrb\szForkAwareLocal.__init__cCst|ffS)N)type)r_rrr __reduce__^szForkAwareLocal.__reduce__N)rirrrsrbrrrrrr[s   SC_OPEN_MAXcCset|dtg}|jx>tt|dD]&}tj||d||dq7WdS)Nr)rEMAXFDrHrangelenr[ closerange)fdsirrrrjs cCstjdkrdSytjjWnttfk r>YnXyPtjtjtj}yt|ddt_Wntj|YnXWnttfk rYnXdS)NclosefdF) sysstdincloseOSError ValueErrorr[opendevnullO_RDONLY)fdrrr _close_stdints  rcCsddl}tttt|}tj\}}zM|j|tj|gd|ddddddd d ||dddSWdtj |tj |XdS) NrTrFrrrrrr) _posixsubprocesstuplesortedmapintr[pipe fork_execfsencoder)pathrpassfdsr errpipe_read errpipe_writerrrspawnv_passfdss  r)5r[ itertoolsrrSr(r subprocessrr__all__NOTSETrrr rr%r0rr5rrrrr r r WeakValueDictionaryrFcountrQrOr r^rYobjectrrr rrr>r)r*rlocalrsysconfrrIrrrrrrr sd                  S,  (