%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/local/lib/python3.8/multiprocessing/__pycache__/
Upload File :
Create Path :
Current File : //usr/local/lib/python3.8/multiprocessing/__pycache__/process.cpython-38.pyc

U

q©ßaå.ã@s8ddddgZddlZddlZddlZddlZddlZddlmZzej 	e 
¡¡ZWnek
rldZYnXdd„Z
dd„Zd	d„Zd
d„ZGdd„deƒZGd
d„deƒZGdd„deƒZGdd„deƒZdaeƒae d¡aeƒa[iZeej  ¡ƒD]0\Z!Z"e!dd…dkrüde!krüde!›ee"<qüeƒZ#dS)ÚBaseProcessÚcurrent_processÚactive_childrenÚparent_processéN)ÚWeakSetcCstS)z@
    Return process object representing the current process
    )Ú_current_process©rrú3/usr/local/lib/python3.8/multiprocessing/process.pyr%scCstƒttƒS)zN
    Return list of process objects corresponding to live child processes
    )Ú_cleanupÚlistÚ	_childrenrrrr	r+scCstS)z?
    Return process object representing the parent process
    )Ú_parent_processrrrr	r3scCs*ttƒD]}|j ¡dk	rt |¡qdS©N)rrÚ_popenÚpollÚdiscard)Úprrr	r
=sr
c@süeZdZdZdd„Zddddifddœdd„Zd	d
„Zdd„Zd
d„Zdd„Z	dd„Z
d,dd„Zdd„Zdd„Z
edd„ƒZejdd„ƒZedd„ƒZejdd„ƒZedd „ƒZejd!d „ƒZed"d#„ƒZed$d%„ƒZeZed&d'„ƒZd(d)„Zd-d*d+„ZdS).rz€
    Process objects represent activity that is run in a separate process

    The class is analogous to `threading.Thread`
    cCst‚dSr)ÚNotImplementedError©Úselfrrr	Ú_PopenMszBaseProcess._PopenNr)ÚdaemoncCs°|dkstdƒ‚ttƒ}tj|f|_tj ¡|_t ¡|_	tj
|_d|_d|_
||_t|ƒ|_t|ƒ|_|pt|ƒjdd dd„|jDƒ¡|_|dk	r¢||_t |¡dS)Nz#group argument must be None for nowFú-ú:css|]}t|ƒVqdSr)Ústr)Ú.0Úirrr	Ú	<genexpr>^sz'BaseProcess.__init__.<locals>.<genexpr>)ÚAssertionErrorÚnextÚ_process_counterrÚ	_identityÚ_configÚcopyÚosÚgetpidÚ_parent_pidÚnameÚ_parent_namerÚ_closedÚ_targetÚtupleÚ_argsÚdictÚ_kwargsÚtypeÚ__name__ÚjoinÚ_namerÚ	_danglingÚadd)rÚgroupÚtargetr'ÚargsÚkwargsrÚcountrrr	Ú__init__Ps"


ÿzBaseProcess.__init__cCs|jrtdƒ‚dS)Nzprocess object is closed)r)Ú
ValueErrorrrrr	Ú
_check_closedcszBaseProcess._check_closedcCs|jr|j|j|jŽdS)zQ
        Method to be run in sub-process; can be overridden in sub-class
        N)r*r,r.rrrr	ÚrungszBaseProcess.runcCsz| ¡|jdkstdƒ‚|jt ¡ks0tdƒ‚tj d¡rDtdƒ‚t	ƒ| 
|¡|_|jj|_|`
|`|`t |¡dS)z%
        Start child process
        Nzcannot start a process twicez:can only start a process object created by current processrz3daemonic processes are not allowed to have children)r<rrr&r$r%rr"Úgetr
rÚsentinelÚ	_sentinelr*r,r.rr4rrrr	Ústartnsÿÿ
zBaseProcess.startcCs| ¡|j ¡dS)zT
        Terminate process; sends SIGTERM signal or uses TerminateProcess()
        N)r<rÚ	terminaterrrr	rB€szBaseProcess.terminatecCs| ¡|j ¡dS)zT
        Terminate process; sends SIGKILL signal or uses TerminateProcess()
        N)r<rÚkillrrrr	rC‡szBaseProcess.killcCsR| ¡|jt ¡kstdƒ‚|jdk	s0tdƒ‚|j |¡}|dk	rNt |¡dS)z5
        Wait until child process terminates
        zcan only join a child processNzcan only join a started process)	r<r&r$r%rrÚwaitrr)rÚtimeoutÚresrrr	r1ŽszBaseProcess.joincCs`| ¡|tkrdS|jt ¡ks*tdƒ‚|jdkr8dS|j ¡}|dkrNdSt 	|¡dSdS)z1
        Return whether process is alive
        Tzcan only test a child processNF)
r<rr&r$r%rrrrr)rÚ
returncoderrr	Úis_alive™s


zBaseProcess.is_alivecCsH|jdk	r>|j ¡dkr tdƒ‚|j ¡d|_|`t |¡d|_dS)zÂ
        Close the Process object.

        This method releases resources held by the Process object.  It is
        an error to call this method if the child process is still running.
        Nz^Cannot close a process while it is still running. You should first call join() or terminate().T)rrr;Úcloser@rrr)rrrr	rI¬s


zBaseProcess.closecCs|jSr)r2rrrr	r'½szBaseProcess.namecCst|tƒstdƒ‚||_dS)Nzname must be a string)Ú
isinstancerrr2)rr'rrr	r'ÁscCs|j dd¡S)z4
        Return whether process is a daemon
        rF)r"r>rrrr	rÆszBaseProcess.daemoncCs |jdkstdƒ‚||jd<dS)z1
        Set whether process is a daemon
        Nzprocess has already startedr)rrr")rÚdaemonicrrr	rÍscCs
|jdS)NÚauthkey)r"rrrr	rLÕszBaseProcess.authkeycCst|ƒ|jd<dS)z2
        Set authorization key of process
        rLN)ÚAuthenticationStringr")rrLrrr	rLÙscCs"| ¡|jdkr|jS|j ¡S)zM
        Return exit code of process or `None` if it has yet to stop
        N)r<rrrrrr	Úexitcodeàs
zBaseProcess.exitcodecCs*| ¡|tkrt ¡S|jo$|jjSdS)zU
        Return identifier (PID) of process or `None` if it has yet to start
        N)r<rr$r%rÚpidrrrr	ÚidentêszBaseProcess.identcCs4| ¡z|jWStk
r.tdƒd‚YnXdS)z{
        Return a file descriptor (Unix) or handle (Windows) suitable for
        waiting for process termination.
        zprocess not startedN)r<r@ÚAttributeErrorr;rrrr	r?÷s
zBaseProcess.sentinelcCsèd}|tkrd}nL|jrd}n@|jt ¡kr2d}n,|jdkrBd}n|j ¡}|dk	rZd}nd}t|ƒjd|j	g}|jdk	rŽ| 
d|jj¡| 
d|j¡| 
|¡|dk	rÊt 
||¡}| 
d	|¡|jrÚ| 
d
¡dd |¡S)
NÚstartedÚclosedÚunknownÚinitialÚstoppedzname=%rzpid=%sz	parent=%szexitcode=%srz<%s>ú )rr)r&r$r%rrr/r0r2ÚappendrOÚ_exitcode_to_namer>rr1)rrNÚstatusÚinforrr	Ú__repr__s0




zBaseProcess.__repr__c
Csvddlm}m}z>zž|jdk	r,| |j¡t	 
d¡atƒa
| ¡t}|at|j|j|ƒatjrnt ¡ ¡z|j ¡| ¡W5~X| d¡z| ¡d}W5| ¡XWnštk
r}zJ|jsÒd}n:t|jdtƒrî|jd}nt j! "t#|jdƒd¡d}W5d}~XYn2d}ddl$}t j! "d|j%¡| &¡YnXW5t ¡| d|¡| ¡X|S)Né)ÚutilÚcontextz process exiting with exitcode %dz child process calling self.run()rÚ
zProcess %s:
)'Úr^r_Ú	threadingÚ	_shutdownr[Ú_flush_std_streamsÚ
_start_methodÚ_force_start_methodÚ	itertoolsr9r ÚsetrÚ_close_stdinrÚ_ParentProcessr(r&r
Ú_HAVE_THREAD_NATIVE_IDÚmain_threadÚ_set_native_idÚ_finalizer_registryÚclearÚ_run_after_forkersÚ_exit_functionr=Ú
SystemExitr7rJÚintÚsysÚstderrÚwriterÚ	tracebackr'Ú	print_exc)rÚparent_sentinelr^r_rNÚold_processÚerwrrr	Ú
_bootstrap"sR

ÿ


zBaseProcess._bootstrap)N)N)r0Ú
__module__Ú__qualname__Ú__doc__rr:r<r=rArBrCr1rHrIÚpropertyr'ÚsetterrrLrNrPrOr?r\r|rrrr	rGsDÿ







	


c@seZdZdd„ZdS)rMcCs,ddlm}|ƒdkrtdƒ‚tt|ƒffS)Nr])Úget_spawning_popenzJPickling an AuthenticationString object is disallowed for security reasons)r_r‚Ú	TypeErrorrMÚbytes)rr‚rrr	Ú
__reduce__Xs
ÿzAuthenticationString.__reduce__N)r0r}r~r…rrrr	rMWsrMc@s6eZdZdd„Zdd„Zedd„ƒZd
dd	„ZeZdS)rjcCs4d|_||_||_d|_d|_d|_||_i|_dS)NrF)r!r2Ú_pidr&rr)r@r")rr'rOr?rrr	r:hsz_ParentProcess.__init__cCsddlm}||jgddS)Nr©rD©rE©Úmultiprocessing.connectionrDr@)rrDrrr	rHrsz_ParentProcess.is_alivecCs|jSr)r†rrrr	rPvsz_ParentProcess.identNcCs ddlm}||jg|ddS)z6
        Wait until parent process terminates
        rr‡rˆNr‰)rrErDrrr	r1zsz_ParentProcess.join)N)	r0r}r~r:rHr€rPr1rOrrrr	rjfs


rjc@seZdZdd„Zdd„ZdS)Ú_MainProcesscCs8d|_d|_d|_d|_d|_tt d¡ƒddœ|_dS)NrÚMainProcessFé z/mp)rLÚ	semprefix)	r!r2r&rr)rMr$Úurandomr"rrrr	r:‰sÿz_MainProcess.__init__cCsdSrrrrrr	rI›sz_MainProcess.closeN)r0r}r~r:rIrrrr	r‹‡sr‹r]éZSIGÚ_r)$Ú__all__r$rtÚsignalrgrbÚ_weakrefsetrÚpathÚabspathÚgetcwdÚORIGINAL_DIRÚOSErrorrrrr
Úobjectrr„rMrjr‹r
rr9r rhrrYrÚ__dict__Úitemsr'Úsignumr3rrrr	Ú<module>
s@ÿ


!


Zerion Mini Shell 1.0