Your IP : 172.28.240.42


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

ó
—|_c@s2dddgZddlZddlZddlZddlZyejjejƒƒZWne	k
rtdZnXd„Zd„Zd„Z
defd„ƒYZd	efd
„ƒYZdefd„ƒYZeƒa[iZxGejjƒD]6\ZZed
 dkrôdekrôeee<qôqôWdS(tProcesstcurrent_processtactive_childreniÿÿÿÿNcCstS(s@
    Return process object representing the current process
    (t_current_process(((s-/usr/lib/python2.7/multiprocessing/process.pyR;scCstƒttjƒS(sN
    Return list of process objects corresponding to live child processes
    (t_cleanuptlistRt	_children(((s-/usr/lib/python2.7/multiprocessing/process.pyRAscCsFx?ttjƒD].}|jjƒdk	rtjj|ƒqqWdS(N(RRRt_popentpolltNonetdiscard(tp((s-/usr/lib/python2.7/multiprocessing/process.pyRLscBsõeZdZdZddddid„Zd„Zd„Zd„Zdd„Z	d„Z
ed„ƒZej
d„ƒZed	„ƒZej
d
„ƒZed„ƒZej
d„ƒZed
„ƒZed„ƒZeZd„Zd„ZRS(s€
    Process objects represent activity that is run in a separate process

    The class is analagous to `threading.Thread`
    cCs×|dkstdƒ‚tjjƒ}tj|f|_tj|_tj|_tj|_t	j
ƒ|_d|_||_
t|ƒ|_t|ƒ|_|pÍt|ƒjddjd„|jDƒƒ|_dS(Ns#group argument must be None for nowt-t:css|]}t|ƒVqdS(N(tstr(t.0ti((s-/usr/lib/python2.7/multiprocessing/process.pys	<genexpr>ks(R	tAssertionErrorRt_countertnextt	_identityt_authkeyt	_daemonict_tempdirtostgetpidt_parent_pidRt_targetttuplet_argstdictt_kwargsttypet__name__tjoint_name(tselftgroupttargettnametargstkwargstcount((s-/usr/lib/python2.7/multiprocessing/process.pyt__init__^s		cCs&|jr"|j|j|jŽndS(sQ
        Method to be run in sub-process; can be overridden in sub-class
        N(RRR(R$((s-/usr/lib/python2.7/multiprocessing/process.pytrunms	cCs§|jdkstdƒ‚|jtjƒks<tdƒ‚tjsRtdƒ‚tƒ|j	dk	rt|j	}nddl
m}||ƒ|_tjj
|ƒdS(s%
        Start child process
        scannot start a process twices:can only start a process object created by current processs3daemonic processes are not allowed to have childreni(tPopenN(RR	RRRRRRRt_PopentforkingR-Rtadd(R$R-((s-/usr/lib/python2.7/multiprocessing/process.pytstartts	
	cCs|jjƒdS(sT
        Terminate process; sends SIGTERM signal or uses TerminateProcess()
        N(Rt	terminate(R$((s-/usr/lib/python2.7/multiprocessing/process.pyR2…scCsq|jtjƒks!tdƒ‚|jdk	s<tdƒ‚|jj|ƒ}|dk	rmtjj	|ƒndS(s5
        Wait until child process terminates
        scan only join a child processscan only join a started processN(
RRRRRR	twaitRRR
(R$ttimeouttres((s-/usr/lib/python2.7/multiprocessing/process.pyR"‹s
!cCsa|tkrtS|jtjƒks1tdƒ‚|jdkrDtS|jj	ƒ|jj
dkS(s1
        Return whether process is alive
        scan only test a child processN(RtTrueRRRRRR	tFalseRt
returncode(R$((s-/usr/lib/python2.7/multiprocessing/process.pytis_alive•s!
cCs|jS(N(R#(R$((s-/usr/lib/python2.7/multiprocessing/process.pyR'¡scCs(t|tƒstdƒ‚||_dS(Nsname must be a string(t
isinstancet
basestringRR#(R$R'((s-/usr/lib/python2.7/multiprocessing/process.pyR'¥scCs|jS(s4
        Return whether process is a daemon
        (R(R$((s-/usr/lib/python2.7/multiprocessing/process.pytdaemonªscCs(|jdkstdƒ‚||_dS(s1
        Set whether process is a daemon
        sprocess has already startedN(RR	RR(R$tdaemonic((s-/usr/lib/python2.7/multiprocessing/process.pyR<±scCs|jS(N(R(R$((s-/usr/lib/python2.7/multiprocessing/process.pytauthkey¹scCst|ƒ|_dS(s2
        Set authorization key of process
        N(tAuthenticationStringR(R$R>((s-/usr/lib/python2.7/multiprocessing/process.pyR>½scCs#|jdkr|jS|jjƒS(sM
        Return exit code of process or `None` if it has yet to stop
        N(RR	R(R$((s-/usr/lib/python2.7/multiprocessing/process.pytexitcodeÄscCs-|tkrtjƒS|jo(|jjSdS(sU
        Return identifier (PID) of process or `None` if it has yet to start
        N(RRRRtpid(R$((s-/usr/lib/python2.7/multiprocessing/process.pytidentÍs
cCsá|tkrd}n]|jtjƒkr3d}n?|jdkrKd}n'|jjƒdk	rl|j}nd}t|ƒt	kr²|dkr™d}q²dt
j||ƒ}ndt|ƒj|j
||jrÙdpÜd	fS(
Ntstartedtunknowntinitialitstoppedsstopped[%s]s<%s(%s, %s%s)>s daemont(RRRRRR	RR@R tintt_exitcode_to_nametgetR!R#R(R$tstatus((s-/usr/lib/python2.7/multiprocessing/process.pyt__repr__Ùs				cCs•ddlm}y«tƒ|_tjdƒ|_y#tjj	ƒt
tjƒt_Wnt
tfk
rmnX|a|jjƒ|jƒ|jdƒz|jƒd}Wd|jƒXWnÂtk
r9}|jsßd}q€t|jdƒtkr|jd}q€tjj|jddƒtjjƒd}nGd}ddl}tjjd|jƒtjjƒ|jƒnX|jd|ƒ|S(	Ni(tutils child process calling self.run()is
iÿÿÿÿsProcess %s:
s process exiting with exitcode %d( RGRMtsetRt	itertoolsR*RtsyststdintclosetopenRtdevnulltOSErrort
ValueErrorRt_finalizer_registrytcleart_run_after_forkerstinfoR,t_exit_functiont
SystemExitR(R RHtstderrtwritetflusht	tracebackR't	print_exc(R$RMR@teR`((s-/usr/lib/python2.7/multiprocessing/process.pyt
_bootstrapñsB





		
	
N((R!t
__module__t__doc__R	R.R+R,R1R2R"R9tpropertyR'tsetterR<R>R@RBRARLRc(((s-/usr/lib/python2.7/multiprocessing/process.pyRVs&			
		
	R?cBseZd„ZRS(cCs>ddlm}|jƒs+tdƒ‚ntt|ƒffS(Ni(R-sJPickling an AuthenticationString object is disallowed for security reasons(R/R-tthread_is_spawningt	TypeErrorR?tbytes(R$R-((s-/usr/lib/python2.7/multiprocessing/process.pyt
__reduce__s
(R!RdRk(((s-/usr/lib/python2.7/multiprocessing/process.pyR?st_MainProcesscBseZd„ZRS(cCspd|_t|_d|_d|_d|_tjdƒ|_	t
ƒ|_tt
jdƒƒ|_d|_dS(NtMainProcessii ((RR7RR#R	RRROR*RRNRR?RturandomRR(R$((s-/usr/lib/python2.7/multiprocessing/process.pyR+-s					(R!RdR+(((s-/usr/lib/python2.7/multiprocessing/process.pyRl+sitSIGt_(t__all__RRPtsignalROtpathtabspathtgetcwdtORIGINAL_DIRRUR	RRRtobjectRRjR?RlRRIt__dict__titemsR'tsignum(((s-/usr/lib/python2.7/multiprocessing/process.pyt<module>#s(

			
Ç