%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__/spawn.cpython-38.pyc

U

qaP$@s$ddlZddlZddlZddlZddlmZmZddlmZddlm	Z	ddlm
Z
ddd	d
ddd
gZejdkrzdZ
dZneeddZ
ejdZerejejdanejadd	Zdd
ZddZddZddZd&ddZddZddZddZgZ dd Z!d!d"Z"d#d$Z#d%d
Z$dS)'N)get_start_methodset_start_method)process)	reduction)util_mainfreeze_supportset_executableget_executableget_preparation_dataget_command_lineimport_main_pathwin32Ffrozenzpythonservice.exez
python.execCs|adSN_python_exe)Zexer1/usr/local/lib/python3.8/multiprocessing/spawn.pyr
)scCstSrrrrrrr-scCs$t|dkr|ddkrdSdSdS)z=
    Return whether commandline indicates we are forking
    r--multiprocessing-forkTFN)len)argvrrr
is_forking4srcCsdttjr`i}tjddD]0}|d\}}|dkr@d||<qt|||<qtf|tdS)zE
    Run code for process object if this in not the main process
    rN=None)rsysrsplitint
spawn_mainexit)kwdsargnamevaluerrrr	>s


cKshttddr(tjdgdd|DSd}|ddd	|D;}t}tg|d
|dgSdS)zJ
    Returns prefix of command line used for spawning a child process
    rFrcSsg|]}d|qS)%s=%rr.0itemrrr
<listcomp>Tsz$get_command_line.<locals>.<listcomp>z<from multiprocessing.spawn import spawn_main; spawn_main(%s)z, css|]}d|VqdS)r&Nrr'rrr	<genexpr>Wsz#get_command_line.<locals>.<genexpr>z-cN)getattrr
executableitemsjoinr_args_from_interpreter_flagsr)r"progZoptsrrrr
NscCsttjstdtjdkrrddl}ddl}|dk	rL||j|j	Bd|}nd}t
j||d}||t
j}|}n"ddlm}	||	j_|}t
|}t||}
t|
dS)	z7
    Run code specified by data received over pipe
    zNot forkingrrNF)source_processr)resource_tracker)rrrAssertionErrorplatformmsvcrt_winapiZOpenProcessZSYNCHRONIZEZPROCESS_DUP_HANDLErZ	duplicateopen_osfhandleosO_RDONLYr3_resource_trackerZ_fdduprr!)Zpipe_handleZ
parent_pidZ
tracker_fdr6r7r2Z
new_handlefdparent_sentinelr3exitcoderrrr \s,



r c	Cs`tj|ddd@}dt_z$tj|}t|tj|}W5t`XW5QRX|	|S)NrbT)closefd)
r9fdopenrcurrent_process_inheritingrpickleloadprepare
_bootstrap)r>r?Zfrom_parentZpreparation_dataselfrrrrxs
cCsttddrtddS)NrEFa
        An attempt has been made to start a new process before the
        current process has finished its bootstrapping phase.

        This probably means that you are not using fork to start your
        child processes and you have forgotten to use the proper idiom
        in the main module:

            if __name__ == '__main__':
                freeze_support()
                ...

        The "freeze_support()" line can be omitted if the program
        is not going to be frozen to produce an executable.)r,rrDRuntimeErrorrrrr_check_not_importing_mainsrLcCstttjtjd}tjdk	r2tj|d<t	j
}z|d}Wnt
k
r^YnXtj||<|j||t	jtjttdt	jd}t|jdd}|dk	r||d<nft	jd	kststst|d
d}|dk	rtj
|s
tjdk	r
tj
tj|}tj
||d<|S)zM
    Return info about parent needed by child to unpickle process object
    )
log_to_stderrauthkeyN	log_levelr;)r$sys_pathsys_argvorig_dirdirstart_method__main__r$init_main_from_namer__file__init_main_from_path)rLdictr_log_to_stderrrrDrN_loggergetEffectiveLevelrpathcopyindex
ValueErrorORIGINAL_DIRupdaterr9getcwdrmodulesr,__spec__r5WINEXE
WINSERVICEisabsr/normpath)r$drPimain_moduleZ
main_mod_name	main_pathrrrrsD





cCsd|kr|dt_d|kr,|dt_d|krD|drDtd|kr^t|dd|krp|dt_	d|kr|dt_
d|krt|dd|kr|dt_
d	|krt|d	d
dd|krt|dnd
|krt|d
dS)zE
    Try to get current process ready to unpickle process object
    r$rNrMrOrPrQrSrRrTT)forcerVrXN)rrDr$rNrrM
get_loggersetLevelrr]rr9chdirrar_fixup_main_from_name_fixup_main_from_path)datarrrrHs,


rHcCs~tjd}|dks|dr dSt|jdd|kr6dSt|td}t	j
|ddd}|j||tjd<tjd<dS)NrUz	.__main__r$__mp_main__T)run_nameZ	alter_sys)
rrdendswithr,reold_main_modulesappendtypes
ModuleTyperunpyZ
run_module__dict__rb)Zmod_namecurrent_mainrlmain_contentrrrrrs


rrcCstjd}tjtj|d}|dkr.dSt|dd|krBdSt|t	
d}tj|dd}|j
||tjd<tjd<dS)NrUrZipythonrWru)rv)rrdr9r]splitextbasenamer,rxryrzr{r|Zrun_pathr}rb)rmr~Z	main_namerlrrrrrs	s


rscCst|dS)z<
    Set sys.modules['__main__'] to module at main_path
    N)rs)rmrrrr%s)NN)%r9rr|rzr;rrrcontextrr__all__r5rfrgr,r-lowerrwr]r/exec_prefixrr
rrr	r
r rrLrrxrHrrrsrrrrr<module>sD


2&

Zerion Mini Shell 1.0