File "forkserver.cpython-34.pyc"

Full Path: /home/attunedd/public_html/byp/izo/con7ext_sym404/rintoar.txt/opt/alt/python34/lib64/python3.4/multiprocessing/__pycache__/forkserver.cpython-34.pyc
File size: 7.08 KB
MIME-type: text/x-bytecode.python
Charset: 8 bit


e f!@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	threadingZLock_lock_preload_modules)selfr?/opt/alt/python34/lib64/python3.4/multiprocessing/forkserver.py__init__!s
			zForkServer.__init__cCs8tdd|jDs+tdn||_dS)z>Set list of module names to try to load in forkserver process.css!|]}t|tkVqdS)N)typestr).0modrrr	<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)zReturn list of fds inherited from parent process.

        This returns None if the current process was not started by fork
        server.
        )r)rrrrr
.szForkServer.get_inherited_fdscCs|jt|dtkr/tdntjtj}|j|jtj	\}}tj	\}}|||j
tjg}||7}zJyt
j||||fSWn%tj|tj|YnXWdtj|tj|XWdQXdS)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	lenMAXFDS_TO_SEND
ValueErrorsocketAF_UNIXZconnectrospiperrZgetfdrZsendfdsclose)rfdsZclientZparent_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
|jdtj\}}zyy|j|g}||j||j|f;}tj}|gtj}	|	d|g7}	tj||	|}
Wntj|YnXWdtj|X||_||_WdQXWdQXdS)
zMake 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.
        Nz-from multiprocessing.forkserver import main; zmain(%d, %d, %r, **%r)	main_pathsys_pathignorec3s-|]#\}}|kr||fVqdS)Nr)rxy)desired_keysrrres	z,ForkServer.ensure_running.<locals>.<genexpr>r'idz-c)rrr	rrrZget_preparation_datadictitemsr&r'rZarbitrary_addressZbindr(chmodZlistenr)filenoZget_executablerZ_args_from_interpreter_flagsZspawnv_passfdsr*r)rcmddatalistenerZaddressalive_rZalive_wZfds_to_passZexeargspidr)r3rr	Ss>

	(



	zForkServer.ensure_runningN)__name__
__module____qualname__rrr
rr	rrrrrs
rc
<Cs|rd|krQ|dk	rQdtj_ztj|Wdtj`Xnx4|D])}yt|WqXtk
rYqXXqXWntjdk	ry#tjj	t
tjt_Wqt
tfk
rYqXntjtjtj}tjtjd|}tj}|jt_|j|tj|j|tjx]yx'dd|jD}	|	rXPqXqXW||	krtj|ddksttn||	kst|jd	}
d}tj d	krSzPyt!|
|||Wn2t"k
r=tj#tj$tj%j&YnXWdtj'|XnWdQXWqRt(k
rnYqRt
k
r}z|j)t)j*krnWYdd}~XqRXqRWWdQXWdQXdS)
zRun forkserver.rNTr8cSsg|]\}}|jqSr)Zfileobj)rkeyZeventsrrr
<listcomp>s	zmain.<locals>.<listcomp>rr)+rZcurrent_processZ_inheritingrZimport_main_path
__import__ImportErrorsysstdinr*openr(devnullOSErrorr%signalSIGCHLDSIG_IGNr&r'	selectorsZDefaultSelectorZgetsockname_forkserverrregisterZ
EVENT_READZselectreadAssertionError
SystemExitZacceptfork
_serve_one	Exception
excepthookexc_infostderrflush_exitInterruptedErrorerrnoZECONNABORTED)
Zlistener_fdr<Zpreloadr.r/modnamehandlerr;ZselectorZrfdsscodeerrrmains^


	

rdc
Cs|jtj|tjtj|tj|td}|jt|tksbt|^}}t	_
}t	_|tj
_t|tjdtjkrddl}|jntj|}	t||	dS)Nrrandomr)r*r(rLrMrZrecvfdsr$r#rSrPrrrZ_semaphore_trackerZ_fdwrite_unsignedgetpidrGmodulesreZseedr_main)
rar;r<r`r+r-r,ZstfdrerbrrrrVs



rVcCsd}tj}xrt||krx:y tj||t|}Wntk
r[Yq'XPq'W|svtdn||7}qWtj|dS)NrDzunexpected EOFr)UNSIGNED_STRUCTsizer#r(rRr]EOFErrorZunpack)fdr:Zlengthrarrr
read_unsigneds	 
rncCs~tj|}xh|ryx0ytj||}Wntk
rEYqXPqW|dkrftdn||d}qWdS)Nrzshould not get here)rjZpackr(writer]RuntimeError)rmnmsgnbytesrrrrfs	
rf)r^r(rOrLr&ZstructrGrrrrrrr__all__r$ZStructrjobjectrrdrVrnrfrPr	r
rrrrrr<module>s6		h>