ž ¨ÿf½&c@s ddlZddlZddlZddlZddlZddlZddlZddlmZddl m Z m Z dddddd d d d d ddddgZ dZ dZdZdZdZdZdZdad*add„Zdd„Zdd„Zdd„Zdd„Zddd „Zdd „ZejƒZ ej!ƒZ"dd „Z#d!d „Z$iZ%ej!ƒZ&Gd"d „d e'ƒZ(dd#d$„Z)d%d „Z*d*a+eee)e e d&d'„Z,ej-e,ƒGd(d„de'ƒZ.Gd)d„dej/ƒZ0dS(+iN(u_args_from_interpreter_flags(ucurrent_processuactive_childrenu sub_debugudebuguinfou sub_warningu get_loggeru log_to_stderru get_temp_diruregister_after_forku is_exitinguFinalizeuForkAwareThreadLockuForkAwareLocaluSUBDEBUGu SUBWARNINGii iiumultiprocessingu+[%(levelname)s/%(processName)s] %(message)scGs trtjt||ŒndS(N(u_loggeruloguSUBDEBUG(umsguargs((u9/opt/alt/python33/lib64/python3.3/multiprocessing/util.pyu sub_debug-scGs trtjt||ŒndS(N(u_loggeruloguDEBUG(umsguargs((u9/opt/alt/python33/lib64/python3.3/multiprocessing/util.pyudebug1scGs trtjt||ŒndS(N(u_loggeruloguINFO(umsguargs((u9/opt/alt/python33/lib64/python3.3/multiprocessing/util.pyuinfo5scGs trtjt||ŒndS(N(u_loggerulogu SUBWARNING(umsguargs((u9/opt/alt/python33/lib64/python3.3/multiprocessing/util.pyu sub_warning9sc CsËddl}|jƒz£ts¸|jtƒadt_|jtdƒ|jtdƒt t dƒrƒt j t ƒt j t ƒq¸t jjt fifƒt jjt fifƒnWd|jƒXtS(u0 Returns logger used by multiprocessing iNuSUBDEBUGu SUBWARNINGu unregister(uloggingu _acquireLocku_loggeru getLoggeru LOGGER_NAMEu propagateu addLevelNameuSUBDEBUGu SUBWARNINGuhasattruatexitu unregisteru_exit_functionuregisteru _exithandlersuremoveuappendu _releaseLock(ulogging((u9/opt/alt/python33/lib64/python3.3/multiprocessing/util.pyu get_logger=s      cCsjddl}tƒ}|jtƒ}|jƒ}|j|ƒ|j|ƒ|r`|j|ƒnda t S(uB Turn on logging and add a handler which prints to stderr iNT( uloggingu get_loggeru FormatteruDEFAULT_LOGGING_FORMATu StreamHandleru setFormatteru addHandlerusetLeveluTrueu_log_to_stderru_logger(ulevelulogginguloggeru formatteruhandler((u9/opt/alt/python33/lib64/python3.3/multiprocessing/util.pyu log_to_stderrZs     cCstƒjdkrwddl}ddl}|jddƒ}td|ƒtd|jd|gddƒ|tƒ_ntƒjS( Niuprefixupymp-ucreated temp directory %suargsu exitpriorityidiœÿÿÿ( ucurrent_processu_tempdiruNoneushutilutempfileumkdtempuinfouFinalizeurmtree(ushutilutempfileutempdir((u9/opt/alt/python33/lib64/python3.3/multiprocessing/util.pyu get_temp_dirps cCsƒttjƒƒ}|jƒx`|D]X\\}}}}y||ƒWq#tk rz}ztd|ƒWYdd}~Xq#Xq#WdS(Nu after forker raised exception %s(ulistu_afterfork_registryuitemsusortu Exceptionuinfo(uitemsuindexuidentufuncuobjue((u9/opt/alt/python33/lib64/python3.3/multiprocessing/util.pyu_run_after_forkerss u_run_after_forkerscCs#|tttƒt|ƒ|fu( u_weakrefuAttributeErroru TypeErroruNoneugetattru _callbacku_argsustru_kwargsu_key(uselfuobjux((u9/opt/alt/python33/lib64/python3.3/multiprocessing/util.pyu__repr__Ós    uFinalize.__repr__N(u__name__u __module__u __qualname__u__doc__uNoneu__init__u_finalizer_registryu sub_debuguosugetpidu__call__ucancelu still_activeu__repr__(u __locals__((u9/opt/alt/python33/lib64/python3.3/multiprocessing/util.pyuFinalize•s c sétdkrdSˆdkr+dd„‰n‡fdd†‰‡fdd†ttjƒƒDƒ}|jdd ƒxW|D]O\}}td|ƒy |ƒWqytk rÇd dl}|j ƒYqyXqyWˆdkråtj ƒndS( uà 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|dddk S(Ni(uNone(up((u9/opt/alt/python33/lib64/python3.3/multiprocessing/util.pyuõsu!_run_finalizers..cs&|dddk o%|ddˆkS(Ni(uNone(up(u minpriority(u9/opt/alt/python33/lib64/python3.3/multiprocessing/util.pyu÷scs"g|]}ˆ|ƒr|‘qS(((u.0ux(uf(u9/opt/alt/python33/lib64/python3.3/multiprocessing/util.pyu ùs u#_run_finalizers..ureverseu calling %siT( u_finalizer_registryuNoneulistuitemsusortuTrueu sub_debugu Exceptionu tracebacku print_excuclear(u minpriorityuitemsukeyu finalizeru traceback((ufu minpriorityu9/opt/alt/python33/lib64/python3.3/multiprocessing/util.pyu_run_finalizersçs   %     u_run_finalizerscCstptdkS(u6 Returns true if the process is shutting down N(u_exitinguNone(((u9/opt/alt/python33/lib64/python3.3/multiprocessing/util.pyu is_exiting scCs¿ts»da|dƒ|dƒ|dƒ|ƒdk r§x:|ƒD]/}|jrC|d|jƒ|jjƒqCqCWx.|ƒD] }|d|jƒ|jƒq€Wn|dƒ|ƒndS(Nuprocess shutting downu2running all "atexit" finalizers with priority >= 0iu!calling terminate() for daemon %sucalling join() for process %su)running the remaining "atexit" finalizersT(u_exitinguTrueuNoneu _daemonicunameu_popenu terminateujoin(uinfoudebugu_run_finalizersuactive_childrenucurrent_processup((u9/opt/alt/python33/lib64/python3.3/multiprocessing/util.pyu_exit_functions      u_exit_functioncBs,|EeZdZdd„Zdd„ZdS(uForkAwareThreadLockcCs|jƒt|tjƒdS(N(u_reseturegister_after_forkuForkAwareThreadLock(uself((u9/opt/alt/python33/lib64/python3.3/multiprocessing/util.pyu__init__Ds uForkAwareThreadLock.__init__cCs1tjƒ|_|jj|_|jj|_dS(N(u threadinguLocku_lockuacquireurelease(uself((u9/opt/alt/python33/lib64/python3.3/multiprocessing/util.pyu_resetHsuForkAwareThreadLock._resetN(u__name__u __module__u __qualname__u__init__u_reset(u __locals__((u9/opt/alt/python33/lib64/python3.3/multiprocessing/util.pyuForkAwareThreadLockCs cBs,|EeZdZdd„Zdd„ZdS(uForkAwareLocalcCst|dd„ƒdS(NcSs |jjƒS(N(u__dict__uclear(uobj((u9/opt/alt/python33/lib64/python3.3/multiprocessing/util.pyuOsu)ForkAwareLocal.__init__..(uregister_after_fork(uself((u9/opt/alt/python33/lib64/python3.3/multiprocessing/util.pyu__init__NsuForkAwareLocal.__init__cCst|ƒffS(N(utype(uself((u9/opt/alt/python33/lib64/python3.3/multiprocessing/util.pyu __reduce__PsuForkAwareLocal.__reduce__N(u__name__u __module__u __qualname__u__init__u __reduce__(u __locals__((u9/opt/alt/python33/lib64/python3.3/multiprocessing/util.pyuForkAwareLocalMs F(1usysu functoolsuosu itertoolsuweakrefuatexitu threadingu subprocessu_args_from_interpreter_flagsumultiprocessing.processucurrent_processuactive_childrenu__all__uNOTSETuSUBDEBUGuDEBUGuINFOu SUBWARNINGu LOGGER_NAMEuDEFAULT_LOGGING_FORMATuNoneu_loggeruFalseu_log_to_stderru sub_debugudebuguinfou sub_warningu get_loggeru log_to_stderru get_temp_diruWeakValueDictionaryu_afterfork_registryucountu_afterfork_counteru_run_after_forkersuregister_after_forku_finalizer_registryu_finalizer_counteruobjectuFinalizeu_run_finalizersu is_exitingu_exitingu_exit_functionuregisteruForkAwareThreadLockulocaluForkAwareLocal(((u9/opt/alt/python33/lib64/python3.3/multiprocessing/util.pyu sX                    R$  (