Viewing File: /opt/alt/python35/lib64/python3.5/multiprocessing/__pycache__/forkserver.cpython-35.opt-2.pyc



] @sdddlZddlZddlZddlZddlZddlZddlZddlZddlm	Z	ddlm
Z
ddlmZddlmZddlm
Z
ddlmZd	d
ddgZd
ZejdZGdddeZddddZddZddZddZeZejZejZejZejZdS)N)
connection)process)	reduction)semaphore_tracker)spawn)utilensure_runningget_inherited_fdsconnect_to_new_processset_forkserver_preloadQc@sLeZdZddZddZddZddZd	d
ZdS)
ForkServercCs:d|_d|_d|_tj|_dg|_dS)N__main__)_forkserver_address_forkserver_alive_fd_inherited_fds	threadingLock_lock_preload_modules)selfr//opt/alt/python35/lib64/python3.5/forkserver.py__init__!s
			zForkServer.__init__cCs5tdd|jDs(td||_dS)Ncss!|]}t|tkVqdS)N)typestr).0modrrr	<genexpr>*sz4ForkServer.set_forkserver_preload.<locals>.<genexpr>z&module_names must be a list of strings)allr	TypeError)rZ
modules_namesrrrr(sz!ForkServer.set_forkserver_preloadcCs|jS)N)r)rrrrr
.szForkServer.get_inherited_fdscCs
|jt|dtkr,tdtjtj}|j|jtj	\}}tj	\}}|||j
tjg}||7}zJyt
j||||fSWn%tj|tj|YnXWdtj|tj|XWdQRXdS)Nztoo many fds)r	lenMAXFDS_TO_SEND
ValueErrorsocketAF_UNIXconnectrospiperrZgetfdrsendfdsclose)rfdsclientZparent_rchild_wchild_rZparent_wZallfdsrrrr6s&




z!ForkServer.connect_to_new_processcs|jtj|jdk	r'dSdd}|jr}ddhtjd}tfdd|jD}ni}t	j	t	j

}tjd}|j
|tj|d	|jtj\}}zyy|j|g}||j||j|f;}tj}|gtj}	|	d
|g7}	tj||	|}
Wntj|YnXWdtj|X||_||_WdQRXWdQRXdS)Nz-from multiprocessing.forkserver import main; zmain(%d, %d, %r, **%r)	main_pathsys_pathignorec3s-|]#\}}|kr||fVqdS)Nr)rxy)desired_keysrrr es	z,ForkServer.ensure_running.<locals>.<genexpr>r(iz-c)rrr	rrrZget_preparation_datadictitemsr'r(rarbitrary_addressbindr*chmodlistenr+filenoZget_executabler_args_from_interpreter_flagsspawnv_passfdsr-r)rcmddatalisteneraddressalive_rZalive_wZfds_to_passZexeargspidr)r7rr	Ss>

	(



	zForkServer.ensure_runningN)__name__
__module____qualname__rrr
rr	rrrrrs
rc4CsH|rd|krN|dk	rNdtj_ztj|Wdtj`Xx1|D])}yt|WqUtk
r}YqUXqUWtjt	j
t	jt	jt	j
i}dd|jD}tjtjd|f}tjP}	|jt_|	j|tj|	j|tjxyx$dd|	jD}
|
r+Pq+W||
krat|jd}d	}tjdkrzPyt||||Wn2tk
rtj tj!tj"j#YnXWdtj$|XWdQRXWq%t%k
r1}
z|
j&t&j'krWYdd}
~
Xq%Xq%WWdQRXWdQRXdS)
NrTcSs+i|]!\}}tj|||qSr)signal)rsigvalrrr
<dictcomp>s	zmain.<locals>.<dictcomp>r>cSsg|]\}}|jqSr)fileobj)rkeyeventsrrr
<listcomp>s	zmain.<locals>.<listcomp>rr)(rcurrent_processZ_inheritingrZimport_main_path
__import__ImportErrorr_close_stdinrKSIGCHLDSIG_IGNSIGINTSIG_DFLr9r'r(	selectorsDefaultSelectorgetsockname_forkserverrregister
EVENT_READselect
SystemExitacceptr*fork
_serve_one	Exceptionsys
excepthookexc_infostderrflush_exitOSErrorerrnoZECONNABORTED)Zlistener_fdrEZpreloadr2r3modnamehandlersZold_handlersrCselectorZrfdsscodeerrrmainsR


	
	
rucCs|jtj|x*|jD]\}}tj||q$Wtj|td}|j|^}}t_}	t_	|	t
j_t
|tjdtjkrddl}
|
jtj|}t
||dS)Nrrandomr)r-r*r9rKrrecvfdsr%r^rrrZ_semaphore_trackerZ_fdwrite_unsignedgetpidrgmodulesrvseedr_main)rrrCrErprLrMr.r1r0Zstfdrvrsrrrres



recCsqd}tj}xNt||kr_tj||t|}|sRtd||7}qWtj|dS)Nzunexpected EOFr)UNSIGNED_STRUCTsizer$r*readEOFErrorunpack)fdrBlengthrrrrr
read_unsigneds	rcCsZtj|}xD|rUtj||}|dkrBtd||d}qWdS)Nrzshould not get here)r~packr*writeRuntimeError)rnmsgnbytesrrrrxs	rx)rnr*r[rKr'structrgrrrrrrr__all__r%Structr~objectrrurerrxr^r	r
rrrrrr<module>s6		h=!
				
Back to Directory File Manager