Your IP : 216.73.216.213


Current Path : /opt/alt/python27/lib/python2.7/site-packages/py/_process/
Upload File :
Current File : //opt/alt/python27/lib/python2.7/site-packages/py/_process/forkedfunc.pyc

�
%q�]c@sldZddlZddlZddlZddlZd�Zddd��YZdefd��YZdS(	s�
    ForkedFunc provides a way to run a function in a forked process
    and get at its return value, stdout and stderr output as well
    as signals and exitstatusus.
i����Ncs`tt|�d��|�j�kr@tj�j�|�ndd�fd��Y}|�S(Ntwt	AutoFlushcs&eZ�fd�Z�fd�ZRS(cs�j|��j�dS(N(twritetflush(tselftdata(tf(sG/opt/alt/python27/lib/python2.7/site-packages/py/_process/forkedfunc.pyRs
cs
t�|�S(N(tgetattr(Rtname(R(sG/opt/alt/python27/lib/python2.7/site-packages/py/_process/forkedfunc.pyt__getattr__s(t__name__t
__module__RR	((R(sG/opt/alt/python27/lib/python2.7/site-packages/py/_process/forkedfunc.pyRs((topentstrtfilenotostdup2(tfdtfilenameR((RsG/opt/alt/python27/lib/python2.7/site-packages/py/_process/forkedfunc.pytget_unbuffered_ios
t
ForkedFunccBsPeZdZdddddd�Zd�Zejd�Zd�Z	d�Z
RS(iic	Cs�|dkrg}n|dkr*i}n||_||_||_tjjj�|_}|j	d�|_
|j	d�|_|j	d�|_t
j�}|r�||_nd|_|j|||�dS(Ntretvaltstdouttstderr(tNonetfuntargstkwargstpytpathtlocaltmkdtempttempdirtensuretRETVALtSTDOUTtSTDERRRtforktpidt_child(	RRRRt
nice_leveltchild_on_startt
child_on_exitR R&((sG/opt/alt/python27/lib/python2.7/site-packages/py/_process/forkedfunc.pyt__init__s 						c
CsJtd|j�t_}td|j�t_}|jjd�}d}z�|rctj	|�ny^|dk	r||�n|j|j|j
�}|jtj|��|dk	r�|�nWn8tjj�}	|jt|	j���|j}nXWd|j�|j�|j�Xtjd�tjd�tj|�dS(Niitwbi(RR#tsysRR$RR"RRtniceRRRRRtmarshaltdumpsRtcodet
ExceptionInfoR
t
_getreprcrashtEXITSTATUS_EXCEPTIONtcloset_exit(
RR(R)R*RRtretvalft
EXITSTATUSRtexcinfo((sG/opt/alt/python27/lib/python2.7/site-packages/py/_process/forkedfunc.pyR'4s0




c
Cs�||jd�\}}|rUtj|�rCtj|�d}q[tj|�}nd}|d@}|r�|r�|jjd�}z|j�}Wd|j�Xt	j
|�}nd}|jj�}|j
j�}	|j�t|||||	�S(Nii�itrb(R&RtWIFSIGNALEDtWTERMSIGtWEXITSTATUSR"RtreadR5R/tloadsRR#R$t_removetemptResult(
RtwaiterR&tsystemstatust
exitstatustsignalRtretval_dataRR((sG/opt/alt/python27/lib/python2.7/site-packages/py/_process/forkedfunc.pyt
waitfinishQs$

cCs#|jj�r|jj�ndS(N(R tchecktremove(R((sG/opt/alt/python27/lib/python2.7/site-packages/py/_process/forkedfunc.pyR@iscCs |jdk	r|j�ndS(N(R&RR@(R((sG/opt/alt/python27/lib/python2.7/site-packages/py/_process/forkedfunc.pyt__del__msN(R
RR4RR+R'RtwaitpidRGR@RJ(((sG/opt/alt/python27/lib/python2.7/site-packages/py/_process/forkedfunc.pyRs			RAcBseZd�ZRS(cCs1||_||_||_||_||_dS(N(RDRERtoutterr(RRDRERRR((sG/opt/alt/python27/lib/python2.7/site-packages/py/_process/forkedfunc.pyR+ss
				(R
RR+(((sG/opt/alt/python27/lib/python2.7/site-packages/py/_process/forkedfunc.pyRArs((	t__doc__RRR-R/RRtobjectRA(((sG/opt/alt/python27/lib/python2.7/site-packages/py/_process/forkedfunc.pyt<module>s	
W