Plan 9 from Bell Labs’s /usr/web/sources/contrib/jas/root/sys/lib/python2.7/multiprocessing/process.pyo

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


��Qc@s2dddgZddlZddlZddlZddlZyejjej��ZWne	k
rtdZnXd�Zd�Zd�Z
defd��YZd	efd
��YZdefd��YZe�a[iZxGejj�D]6\ZZed
 dkr�ekr�ee<q�WdS(tProcesstcurrent_processtactive_childreni�NcCstS(s@
    Return process object representing the current process
    (t_current_process(((s-/sys/lib/python2.7/multiprocessing/process.pyR;scCst�ttj�S(sN
    Return list of process objects corresponding to live child processes
    (t_cleanuptlistRt	_children(((s-/sys/lib/python2.7/multiprocessing/process.pyRAscCsFx?ttj�D].}|jj�dk	rtjj|�qqWdS(N(RRRt_popentpolltNonetdiscard(tp((s-/sys/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�tjj�}tj|f|_tj|_tj|_tj|_tj�|_	d|_||_t
|�|_t|�|_|p�t|�jddjd�|jD��|_dS(Nt-t:css|]}t|�VqdS(N(tstr(t.0ti((s-/sys/lib/python2.7/multiprocessing/process.pys	<genexpr>ks(Rt_countertnextt	_identityt_authkeyt	_daemonict_tempdirtostgetpidt_parent_pidR	Rt_targetttuplet_argstdictt_kwargsttypet__name__tjoint_name(tselftgroupttargettnametargstkwargstcount((s-/sys/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-/sys/lib/python2.7/multiprocessing/process.pytrunms	cCsUt�|jdk	r"|j}nddlm}||�|_tjj|�dS(s%
        Start child process
        i(tPopenN(	Rt_PopenR	tforkingR,RRRtadd(R#R,((s-/sys/lib/python2.7/multiprocessing/process.pytstartts	cCs|jj�dS(sT
        Terminate process; sends SIGTERM signal or uses TerminateProcess()
        N(Rt	terminate(R#((s-/sys/lib/python2.7/multiprocessing/process.pyR1�scCs5|jj|�}|dk	r1tjj|�ndS(s5
        Wait until child process terminates
        N(RtwaitR	RRR
(R#ttimeouttres((s-/sys/lib/python2.7/multiprocessing/process.pyR!�scCs@|tkrtS|jdkr#tS|jj�|jjdkS(s1
        Return whether process is alive
        N(RtTrueRR	tFalseRt
returncode(R#((s-/sys/lib/python2.7/multiprocessing/process.pytis_alive�s
cCs|jS(N(R"(R#((s-/sys/lib/python2.7/multiprocessing/process.pyR&�scCs
||_dS(N(R"(R#R&((s-/sys/lib/python2.7/multiprocessing/process.pyR&�scCs|jS(s4
        Return whether process is a daemon
        (R(R#((s-/sys/lib/python2.7/multiprocessing/process.pytdaemon�scCs
||_dS(s1
        Set whether process is a daemon
        N(R(R#tdaemonic((s-/sys/lib/python2.7/multiprocessing/process.pyR9�scCs|jS(N(R(R#((s-/sys/lib/python2.7/multiprocessing/process.pytauthkey�scCst|�|_dS(s2
        Set authorization key of process
        N(tAuthenticationStringR(R#R;((s-/sys/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-/sys/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-/sys/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=Rtintt_exitcode_to_nametgetR R"R(R#tstatus((s-/sys/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
rX}|js�d}q�t|jdt�r|jd}q�tjjt|jd�d�tjj�t|jdt�rOdnd}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(!RDRJtsetRt	itertoolsR)RtsyststdintclosetopenRtdevnulltOSErrort
ValueErrorRt_finalizer_registrytcleart_run_after_forkerstinfoR+t_exit_functiont
SystemExitR't
isinstanceREtstderrtwriteRtflusht	tracebackR&t	print_exc(R#RJR=teR^((s-/sys/lib/python2.7/multiprocessing/process.pyt
_bootstrap�sB





		!
%
N((R t
__module__t__doc__R	R-R*R+R0R1R!R8tpropertyR&tsetterR9R;R=R?R>RIRa(((s-/sys/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-/sys/lib/python2.7/multiprocessing/process.pyt
__reduce__s
(R RbRi(((s-/sys/lib/python2.7/multiprocessing/process.pyR<st_MainProcesscBseZd�ZRS(cCspd|_t|_d|_d|_d|_tjd�|_	t
�|_tt
jd��|_d|_dS(NtMainProcessii ((RR6RR"R	RRRLR)RRKRR<RturandomRR(R#((s-/sys/lib/python2.7/multiprocessing/process.pyR*-s					(R RbR*(((s-/sys/lib/python2.7/multiprocessing/process.pyRj+sitSIGt_(t__all__RRMtsignalRLtpathtabspathtgetcwdtORIGINAL_DIRRRR	RRRtobjectRRhR<RjRRFt__dict__titemsR&tsignum(((s-/sys/lib/python2.7/multiprocessing/process.pyt<module>#s(

			
�
	

Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to [email protected].