Your IP : 172.28.240.42


Current Path : /usr/lib/python2.7/multiprocessing/
Upload File :
Current File : //usr/lib/python2.7/multiprocessing/util.pyc


|_c@sddlZddlZddlZddlZddlmZmZddddddd	d
ddd
dddgZdZdZ	dZ
dZdZdZ
dZdaeadZdZdZdZdZddZdZejZejZdZd ZiZ ejZ!de"fd!YZ#dd"Z$d#Z%ea&d$Z'ej(e'd
e"fd%YZ)dej*fd&YZ+dS('iN(tcurrent_processtactive_childrent	sub_debugtdebugtinfotsub_warningt
get_loggert
log_to_stderrtget_temp_dirtregister_after_forkt
is_exitingtFinalizetForkAwareThreadLocktForkAwareLocaltSUBDEBUGt
SUBWARNINGiii
iitmultiprocessings+[%(levelname)s/%(processName)s] %(message)scGs trtjt||ndS(N(t_loggertlogR(tmsgtargs((s*/usr/lib/python2.7/multiprocessing/util.pyRBscGs trtjt||ndS(N(RRtDEBUG(RR((s*/usr/lib/python2.7/multiprocessing/util.pyRFscGs trtjt||ndS(N(RRtINFO(RR((s*/usr/lib/python2.7/multiprocessing/util.pyRJscGs trtjt||ndS(N(RRR(RR((s*/usr/lib/python2.7/multiprocessing/util.pyRNscCsddl}ddl}|jzts|jtadt_|jtd|jt	dt
|dr|jt|j
tq|jjtdif|jjtdifnWd|jXtS(	s0
    Returns logger used by multiprocessing
    iNiRRt
unregister(((tloggingtatexitt_acquireLockRt	getLoggertLOGGER_NAMEt	propagatetaddLevelNameRRthasattrRt_exit_functiontregistert
_exithandlerstremovetappendt_releaseLock(RR((s*/usr/lib/python2.7/multiprocessing/util.pyRRs
	
 cCsjddl}t}|jt}|j}|j||j||r`|j|nta	t
S(sB
    Turn on logging and add a handler which prints to stderr
    iN(RRt	FormattertDEFAULT_LOGGING_FORMATt
StreamHandlertsetFormattert
addHandlertsetLeveltTruet_log_to_stderrR(tlevelRtloggert	formatterthandler((s*/usr/lib/python2.7/multiprocessing/util.pyRos	

cCstjdkrwddl}ddl}|jdd}td|td|jd|gdd|t_ntjS(Nitprefixspymp-screated temp directory %sRtexitpriorityi(	Rt_tempdirtNonetshutilttempfiletmkdtempRRtrmtree(R6R7ttempdir((s*/usr/lib/python2.7/multiprocessing/util.pyRs
cCsqttj}|jxN|D]F\\}}}}y||Wq#tk
rh}td|q#Xq#WdS(Ns after forker raised exception %s(tlistt_afterfork_registrytitemstsortt	ExceptionR(R=tindextidenttfunctobjte((s*/usr/lib/python2.7/multiprocessing/util.pyt_run_after_forkerss
cCs#|ttjt||f<dS(N(R<t_afterfork_countertnexttid(RCRB((s*/usr/lib/python2.7/multiprocessing/util.pyR	scBsGeZdZddddZddZdZdZdZRS(sA
    Class which supports object finalization using weakrefs
    cCs|dks$t|tks$t|dk	rHtj|||_n|dk	sZt||_||_|pui|_	|t
jf|_|t
|j<dS(N(R5ttypetinttAssertionErrortweakreftreft_weakreft	_callbackt_argst_kwargst_finalizer_counterRGt_keyt_finalizer_registry(tselfRCtcallbackRtkwargsR3((s*/usr/lib/python2.7/multiprocessing/util.pyt__init__s$		cCsyt|j=Wntk
r+tdn^Xtd|j|j|j|j|j|j}d|_|_|_|_|_|SdS(sQ
        Run the callback unless it has already been called or cancelled
        sfinalizer no longer registereds/finalizer calling %s with args %s and kwargs %sN(	RTRStKeyErrorRRORPRQR5RN(RUtwrtres((s*/usr/lib/python2.7/multiprocessing/util.pyt__call__s
%cCsKyt|j=Wntk
r!n&Xd|_|_|_|_|_dS(s3
        Cancel finalization of the object
        N(RTRSRYR5RNRORPRQ(RU((s*/usr/lib/python2.7/multiprocessing/util.pytcancels

cCs
|jtkS(sS
        Return whether this finalizer is still waiting to invoke callback
        (RSRT(RU((s*/usr/lib/python2.7/multiprocessing/util.pytstill_activescCsy|j}Wnttfk
r/d}nX|dkr@dSdt|jd|j}|jr|dt|j7}n|jr|dt|j7}n|j	ddk	r|dt|j	d7}n|dS(	Ns<Finalize object, dead>s<Finalize object, callback=%st__name__s, args=s	, kwargs=is, exitprority=t>(
RNtAttributeErrort	TypeErrorR5tgetattrRORPtstrRQRS(RURCtx((s*/usr/lib/python2.7/multiprocessing/util.pyt__repr__s
		(N(	R_t
__module__t__doc__R5RXR\R]R^Rf(((s*/usr/lib/python2.7/multiprocessing/util.pyRs		csdkrd}nfd}gtjD]}||r4|^q4}|jdtxV|D]N\}}td|y|Wqitk
rddl}|jqiXqiWdkrtj	ndS(s
    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.
    cSs|dddk	S(Ni(R5(tp((s*/usr/lib/python2.7/multiprocessing/util.pyt<lambda>scs&|dddk	o%|ddkS(Ni(R5(Ri(tminpriority(s*/usr/lib/python2.7/multiprocessing/util.pyRjstreverses
calling %siN(
R5RTR=R>R,RR?t	tracebackt	print_exctclear(RktfReR=tkeyt	finalizerRm((Rks*/usr/lib/python2.7/multiprocessing/util.pyt_run_finalizerss+

cCstptdkS(s6
    Returns true if the process is shutting down
    N(t_exitingR5(((s*/usr/lib/python2.7/multiprocessing/util.pyR
scCstdtdtdx:tD]/}|jr(td|j|jjq(q(Wx+tD] }td|j|jqeWtdtdS(Nsprocess shutting downs2running all "atexit" finalizers with priority >= 0is!calling terminate() for daemon %sscalling join() for process %ss)running the remaining "atexit" finalizers(	RRRsRt	_daemonictnamet_popent	terminatetjoin(Ri((s*/usr/lib/python2.7/multiprocessing/util.pyR s


	
cBseZdZRS(cCsAtj|_|jj|_|jj|_t|tjdS(N(t	threadingtLockt_locktacquiretreleaseR	RRX(RU((s*/usr/lib/python2.7/multiprocessing/util.pyRX3s(R_RgRX(((s*/usr/lib/python2.7/multiprocessing/util.pyR2scBseZdZdZRS(cCst|ddS(NcSs
|jjS(N(t__dict__Ro(RC((s*/usr/lib/python2.7/multiprocessing/util.pyRj;s(R	(RU((s*/usr/lib/python2.7/multiprocessing/util.pyRX:scCst|dfS(N((RI(RU((s*/usr/lib/python2.7/multiprocessing/util.pyt
__reduce__<s(R_RgRXR(((s*/usr/lib/python2.7/multiprocessing/util.pyR
9s	(,t	itertoolsRLRRztmultiprocessing.processRRt__all__tNOTSETRRRRRR'R5RtFalseR-RRRRRRRtWeakValueDictionaryR<tcountRFRER	RTRRtobjectRRsR
RtR R!RtlocalR
(((s*/usr/lib/python2.7/multiprocessing/util.pyt<module>#sL										I