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

U

q©ßaó0ã@sþddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	m
Z
ddl	mZddlm
Z
ddl	mZddl	mZddl	mZd	d
ddgZd
Ze d¡ZGdd„deƒZddd„Zdd„Zdd„Zdd„ZeƒZejZejZejZejZdS)éNé)Ú
connection)Úprocess)Ú	reduction)Úresource_tracker)Úspawn)ÚutilÚensure_runningÚget_inherited_fdsÚconnect_to_new_processÚset_forkserver_preloadéÚqc@sDeZdZdd„Zdd„Zdd„Zdd„Zd	d
„Zdd„Zd
d„Z	dS)Ú
ForkServercCs.d|_d|_d|_d|_t ¡|_dg|_dS)NÚ__main__)Ú_forkserver_addressÚ_forkserver_alive_fdÚ_forkserver_pidÚ_inherited_fdsÚ	threadingÚLockÚ_lockÚ_preload_modules©Úself©rú6/usr/local/lib/python3.8/multiprocessing/forkserver.pyÚ__init__"s
zForkServer.__init__c	Cs|j| ¡W5QRXdS©N)rÚ_stop_unlockedrrrrÚ_stop*szForkServer._stopcCsV|jdkrdSt |j¡d|_t |jd¡d|_t |j¡sLt |j¡d|_dS)Nr)	rÚosÚcloserÚwaitpidrÚis_abstract_socket_namespacerÚunlinkrrrrr/s
zForkServer._stop_unlockedcCs&tdd„|jDƒƒstdƒ‚||_dS)z>Set list of module names to try to load in forkserver process.css|]}t|ƒtkVqdSr)ÚtypeÚstr)Ú.0ÚmodrrrÚ	<genexpr>@sz4ForkServer.set_forkserver_preload.<locals>.<genexpr>z&module_names must be a list of stringsN)ÚallrÚ	TypeError)rZ
modules_namesrrrr>sz!ForkServer.set_forkserver_preloadcCs|jS)z”Return list of fds inherited from parent process.

        This returns None if the current process was not started by fork
        server.
        )rrrrrr
DszForkServer.get_inherited_fdsc
Csà| ¡t|ƒdtkr tdƒ‚t tj¡ª}| |j¡t 	¡\}}t 	¡\}}|||j
t ¡g}||7}zNz&t ||¡||fWW¢4W5QR£St 
|¡t 
|¡‚YnXW5t 
|¡t 
|¡XW5QRXdS)a;Request forkserver to create a child process.

        Returns a pair of fds (status_r, data_w).  The calling process can read
        the child process's pid and (eventually) its returncode from status_r.
        The calling process should write to data_w the pickled preparation and
        process data.
        éztoo many fdsN)r	ÚlenÚMAXFDS_TO_SENDÚ
ValueErrorÚsocketÚAF_UNIXÚconnectrr!ÚpiperrZgetfdr"rÚsendfds)rÚfdsÚclientÚparent_rÚchild_wÚchild_rÚparent_wZallfdsrrrrLs(ÿ


z!ForkServer.connect_to_new_processcs|j~t ¡|jdk	r`t |jtj¡\}}|sBW5QR£dSt |j¡d|_	d|_d|_d}|j
r”ddh‰t d¡}‡fdd„| 
¡Dƒ}ni}t tj¡Ø}t d¡}| |¡t |¡sÐt |d	¡| ¡t ¡\}}ztzV| ¡|g}	|| ¡||j
|f;}t ¡}
|
gt ¡}|d
|g7}t |
||	¡}Wnt |¡‚YnXW5t |¡X||_	||_||_W5QRXW5QRXdS)zíMake sure that a fork server is running.

        This can be called from any process.  Note that usually a child
        process will just reuse the forkserver started by its parent, so
        ensure_running() will do nothing.
        NzCfrom multiprocessing.forkserver import main; main(%d, %d, %r, **%r)Ú	main_pathÚsys_pathÚignorecsi|]\}}|ˆkr||“qSrr)r(ÚxÚy©Zdesired_keysrrÚ
<dictcomp>„sz-ForkServer.ensure_running.<locals>.<dictcomp>r2i€z-c)rrr	rr!r#ÚWNOHANGr"rrrrZget_preparation_dataÚitemsr1r2rÚarbitrary_addressÚbindrr$ÚchmodÚlistenr4ÚfilenoZget_executableÚ_args_from_interpreter_flagsÚspawnv_passfds)rÚpidÚstatusÚcmdÚdataÚlistenerÚaddressÚalive_rZalive_wZfds_to_passZexeÚargsrrArr	isN





ÿ
zForkServer.ensure_runningN)
Ú__name__Ú
__module__Ú__qualname__rr rrr
rr	rrrrr srcCsú|rdd|kr8|dk	r8dt ¡_zt |¡W5t ¡`X|D]&}zt|ƒWq<tk
r`Yq<Xq<t ¡t	 
¡\}}t	 |d¡t	 |d¡dd„}tj
|tjtji}	dd„|	 ¡Dƒ}
t |¡i}tjtj|d	}t ¡þ}
| ¡t_|
 |tj¡|
 |tj¡|
 |tj¡zˆd
d„|
 ¡Dƒ}|r"qBq"||krjt	 |d¡d
ksftdƒ‚t‚||kr\t	 |d¡zt	 dt	j ¡\}}Wnt!k
r²Yq\YnX|dkrÂq\| "|d¡}|dk	rJt	 #|¡ròt	 $|¡}n&t	 %|¡std &||¡ƒ‚t	 '|¡}zt(||ƒWnt)k
r<YnXt	 *|¡nt+ ,d|¡q€||kr¦| -¡d,}t. /|t0d¡}t1|ƒt0kr¦t2d &t1|ƒ¡ƒ‚|^}}}| *¡t	 3¡}|dkrNd}zpz<| *¡|
 *¡||||g}| 5| 6¡¡t7||||
ƒ}Wn.t8k
r:t9j:t9 ;¡Žt9j< =¡YnXW5t	 4|¡XnNzt(||ƒWnt)k
rrYnX|||<t	 *|¡|D]}t	 *|¡qŠW5QRXWn4t>k
rÜ}z|j?t?j@krÌ‚W5d}~XYnXqW5QRXW5QRXdS)zRun forkserver.rNTFcWsdSrr)Z_unusedrrrÚsigchld_handler¼szmain.<locals>.sigchld_handlercSsi|]\}}|t ||¡“qSr)Úsignal)r(ÚsigÚvalrrrrBÆsÿzmain.<locals>.<dictcomp>)rIcSsg|]\}}|j‘qSr)Úfileobj)r(ÚkeyÚeventsrrrÚ
<listcomp>Úszmain.<locals>.<listcomp>rózNot at EOF?iéÿÿÿÿrzChild {0:n} status is {1:n}z.forkserver: waitpid returned unexpected pid %dzToo many ({0:n}) fds to send)ArÚcurrent_processZ_inheritingrZimport_main_pathÚ
__import__ÚImportErrorrÚ_close_stdinr!r4Úset_blockingrXÚSIGCHLDÚSIGINTÚSIG_IGNrDÚ
set_wakeup_fdr1r2Ú	selectorsÚDefaultSelectorÚgetsocknameÚ_forkserverrÚregisterÚ
EVENT_READÚselectÚreadÚAssertionErrorÚ
SystemExitr#rCÚChildProcessErrorÚpopÚWIFSIGNALEDÚWTERMSIGÚ	WIFEXITEDÚformatÚWEXITSTATUSÚwrite_signedÚBrokenPipeErrorr"ÚwarningsÚwarnÚacceptrÚrecvfdsr/r.ÚRuntimeErrorÚforkÚ_exitÚextendÚvaluesÚ
_serve_oneÚ	ExceptionÚsysÚ
excepthookÚexc_infoÚstderrÚflushÚOSErrorÚerrnoZECONNABORTED)Zlistener_fdrRZpreloadr<r=ÚmodnameZsig_rZsig_wrWÚhandlersZold_handlersZ	pid_to_fdrPÚselectorZrfdsrLÚstsr9Ú
returncodeÚsr6r:ÚcodeÚ
unused_fdsÚfdÚerrrÚmain§sÖ

üÿ
ÿ




ÿÿ
ÿ

ÿÿ

þ
r™c	Csht d¡| ¡D]\}}t ||¡q|D]}t |¡q,|^t_tj_	t_
t |¡}t 
||¡}|S)Nr`)rXrirDr!r"rmrrÚ_resource_trackerZ_fdrÚduprZ_main)	r:r6r–rrYrZr—Úparent_sentinelr•rrrr†1s
þ
r†cCsNd}tj}t|ƒ|kr@t ||t|ƒ¡}|s6tdƒ‚||7}q
t |¡dS)Nr_zunexpected EOFr)Ú
SIGNED_STRUCTÚsizer.r!rqÚEOFErrorÚunpack)r—rOÚlengthr”rrrÚread_signedHs
r¢cCs<t |¡}|r8t ||¡}|dkr*tdƒ‚||d…}q
dS)Nrzshould not get here)rÚpackr!Úwriter)r—ÚnÚmsgÚnbytesrrrr{Rs
r{)NN) rŽr!rjrXr1Ústructrˆrr}ÚrrÚcontextrrrrÚ__all__r/ÚStructrÚobjectrr™r†r¢r{rmr	r
rrrrrrÚ<module>s>ÿ




Zerion Mini Shell 1.0