Ñò §ÚêLc @s7dddgZddkZddkZddkZddkZyeiieiƒƒZWne j o dZnXd„Z d„Z d„Z defd„ƒYZd efd „ƒYZd efd „ƒYZeƒa[hZxJeiiƒD]9\ZZed djodejoeee Qs (Rt_countertnextt _identityt_authkeyt _daemonict_tempdirtostgetpidt _parent_pidR Rt_targetttuplet_argstdictt_kwargsttypet__name__tjoint_name(tselftgroupttargettnametargstkwargstcount((s//usr/lib64/python2.6/multiprocessing/process.pyt__init__Ds     cCs(|io|i|i|iŽndS(sQ Method to be run in sub-process; can be overridden in sub-class N(RRR(R#((s//usr/lib64/python2.6/multiprocessing/process.pytrunSs cCsWtƒ|idj o |i}nddkl}||ƒ|_tii|ƒdS(s% Start child process i(tPopenN( Rt_PopenR tforkingR,RRRtadd(R#R,((s//usr/lib64/python2.6/multiprocessing/process.pytstartZs  cCs|iiƒdS(sT Terminate process; sends SIGTERM signal or uses TerminateProcess() N(Rt terminate(R#((s//usr/lib64/python2.6/multiprocessing/process.pyR1kscCs7|ii|ƒ}|dj otii|ƒndS(s5 Wait until child process terminates N(RtwaitR RRR (R#ttimeouttres((s//usr/lib64/python2.6/multiprocessing/process.pyR!qs cCsD|tjotS|idjotS|iiƒ|iidjS(s1 Return whether process is alive N(RtTrueRR tFalseRt returncode(R#((s//usr/lib64/python2.6/multiprocessing/process.pytis_alive{s   cCs|iS(N(R"(R#((s//usr/lib64/python2.6/multiprocessing/process.pyR&‡scCs ||_dS(N(R"(R#R&((s//usr/lib64/python2.6/multiprocessing/process.pyR&‹scCs|iS(s4 Return whether process is a daemon (R(R#((s//usr/lib64/python2.6/multiprocessing/process.pytdaemonscCs ||_dS(s1 Set whether process is a daemon N(R(R#tdaemonic((s//usr/lib64/python2.6/multiprocessing/process.pyR9—scCs|iS(N(R(R#((s//usr/lib64/python2.6/multiprocessing/process.pytauthkeyŸscCst|ƒ|_dS(s2 Set authorization key of process N(tAuthenticationStringR(R#R;((s//usr/lib64/python2.6/multiprocessing/process.pyR;£scCs%|idjo|iS|iiƒS(sM Return exit code of process or `None` if it has yet to stop N(RR R(R#((s//usr/lib64/python2.6/multiprocessing/process.pytexitcodeªscCs0|tjo tiƒS|io |iiSdS(sV Return indentifier (PID) of process or `None` if it has yet to start N(RRRRtpid(R#((s//usr/lib64/python2.6/multiprocessing/process.pytident³s  cCsï|tjo d}nd|itiƒjo d}nD|idjo d}n*|iiƒdj o |i}nd}t|ƒt jo1|djo d}q¾dt i ||ƒ}ndt|ƒi |i ||iodpd fS( Ntstartedtunknowntinitialitstoppeds stopped[%s]s<%s(%s, %s%s)>s daemont(RRRRRR RR=Rtintt_exitcode_to_nametgetR R"R(R#tstatus((s//usr/lib64/python2.6/multiprocessing/process.pyt__repr__¿s       c Csddkl}y­tƒ|_tidƒ|_y#tii ƒt t i ƒt_Wnt tfj onX|a|iiƒ|iƒ|idƒz|iƒd}Wd|iƒXWnÈtj ov}|ip d}qˆt|idƒtjo|id}qˆtii|iddƒtiiƒd}nHd}ddk}tiid|iƒtiiƒ|iƒnX|id|ƒ|S( Ni(tutils child process calling self.run()is iÿÿÿÿs Process %s: s process exiting with exitcode %d( RDRJtsetRt itertoolsR)RtsyststdintclosetopenRtdevnulltOSErrort ValueErrorRt_finalizer_registrytcleart_run_after_forkerstinfoR+t_exit_functiont SystemExitR'RREtstderrtwritetflusht tracebackR&t print_exc(R#RJR=teR]((s//usr/lib64/python2.6/multiprocessing/process.pyt _bootstrap×sB             N((R t __module__t__doc__R R-R*R+R0R1R!R8tpropertyR&tsetterR9R;R=R?R>RIR`(((s//usr/lib64/python2.6/multiprocessing/process.pyR<s&       R<cBseZd„ZRS(cCs@ddkl}|iƒptdƒ‚ntt|ƒffS(Ni(R,sJPickling an AuthenticationString object is disallowed for security reasons(R.R,tthread_is_spawningt TypeErrorR<tbytes(R#R,((s//usr/lib64/python2.6/multiprocessing/process.pyt __reduce__s   (R RaRh(((s//usr/lib64/python2.6/multiprocessing/process.pyR<st _MainProcesscBseZd„ZRS(cCspd|_t|_d|_d|_d|_tidƒ|_ t ƒ|_ t t idƒƒ|_d|_dS(Nt MainProcessii ((RR6RR"R RRRLR)RRKRR<RturandomRR(R#((s//usr/lib64/python2.6/multiprocessing/process.pyR*s      (R RaR*(((s//usr/lib64/python2.6/multiprocessing/process.pyRisitSIGt_(t__all__RRMtsignalRLtpathtabspathtgetcwdt ORIGINAL_DIRRRR RRRtobjectRRgR<RiRRFt__dict__titemsR&tsignum(((s//usr/lib64/python2.6/multiprocessing/process.pyt s*       Ç