��
���Lc@sddkZddkZddkZddklZlZddddddgZd �Zdd
kl Z de fd��YZ
d�Ze
ie
e
i�e�d
�Ze
ie
ei�e�e
ie
ei�e�yddklZWnej
on$Xd�Zd�Ze
iee�eidjoAddkZeiZeiZeiZde fd��YZ!n{ddk"Z"ddk#Z#ddk$Z$ddkZddk%l&Z&l'Z'l(Z(ddkl)Z)ddkl*Z*l+Z+dd�Z-dZ.eidjoe/ede0�Z1e&i2Ze&i3Zei4i5�i6d�oei7i8ei9d�a:n
ei4a:d�Z;de0d�Zde fd��YZ!d�Z<d �Z=d!�Z>d"�Z?d#�Z@d$�ZAe
ie'eA�e
ie(eA�gZBd%�ZCdS(&i����N(tutiltprocesstPopentassert_spawningtexitt duplicatetclosetForkingPicklercCs.ti�ptdt|�i��ndS(NsF%s objects should only be shared between processes through inheritance(Rtthread_is_spawningtRuntimeErrorttypet__name__(tself((s-/usr/lib/python2.6/multiprocessing/forking.pyRs
(tPicklercBs&eZeii�Zed��ZRS(cs �fd�}||i|<dS(Ncs#�|�}|id||�dS(Ntobj(tsave_reduce(RRtrv(treduce(s-/usr/lib/python2.6/multiprocessing/forking.pyt
dispatcher&s(tdispatch(tclsR
RR((Rs-/usr/lib/python2.6/multiprocessing/forking.pytregister$s(Rt
__module__R
RtcopytclassmethodR(((s-/usr/lib/python2.6/multiprocessing/forking.pyR!scCsG|idjot|i|iiffSt|i|iiffSdS(N(tim_selftNonetgetattrtim_classtim_funct func_name(tm((s-/usr/lib/python2.6/multiprocessing/forking.pyt_reduce_method+scCst|i|iffS(N(Rt__objclass__R(R((s-/usr/lib/python2.6/multiprocessing/forking.pyt_reduce_method_descriptor2s(tpartialcCs#t|i|i|iphffS(N(t_rebuild_partialtfunctargstkeywords(tp((s-/usr/lib/python2.6/multiprocessing/forking.pyt_reduce_partialAscCst|||�S(N(R#(R%R&R'((s-/usr/lib/python2.6/multiprocessing/forking.pyR$Cstwin32cBsDeZd�Zeid�Zdd�Zd�Ze d��Z
RS(cCs�tii�tii�d|_ti�|_|idjoadti joddk
}|i�n|i�}tii�tii�ti
|�ndS(Nitrandomi����(tsyststdouttflushtstderrRt
returncodetostforktpidtmodulesR+tseedt
_bootstrapt_exit(Rtprocess_objR+tcode((s-/usr/lib/python2.6/multiprocessing/forking.pyt__init__Ys
cCs�|idjo�yti|i|�\}}Wntij
odSX||ijoTti|�oti|�|_q�ti|�pt �ti
|�|_q�n|iS(N(R0RR1twaitpidR3terrortWIFSIGNALEDtWTERMSIGt WIFEXITEDtAssertionErrortWEXITSTATUS(RtflagR3tsts((s-/usr/lib/python2.6/multiprocessing/forking.pytpollhscCs�|djo|id�Sti�|}d}xf|i�}|dj oPn|ti�}|djoPnt|d|d�}ti|�q4|S(Nig����Mb@?ig�������?(RRDttimetmintsleep(Rttimeouttdeadlinetdelaytrest remaining((s-/usr/lib/python2.6/multiprocessing/forking.pytwaitxs
cCsj|idjoVyti|iti�Wqftj
o)}|idd�djo�qbqfXndS(NRHg�������?( R0RR1tkillR3tsignaltSIGTERMtOSErrorRM(Rte((s-/usr/lib/python2.6/multiprocessing/forking.pyt terminate�scCstS(N(tFalse(((s-/usr/lib/python2.6/multiprocessing/forking.pyR�sN(RRR:R1tWNOHANGRDRRMRStstaticmethodR(((s-/usr/lib/python2.6/multiprocessing/forking.pyRWs
(R*t
ConnectiontPipeConnectioni(tFinalize(tloadtHIGHEST_PROTOCOLcCst||�i|�dS(N(Rtdump(Rtfiletprotocol((s-/usr/lib/python2.6/multiprocessing/forking.pyR\�sitfrozenspythonservice.exes
python.execCs
|adS(N(t_python_exe(texe((s-/usr/lib/python2.6/multiprocessing/forking.pytset_executable�scCsH|djoti�}ntiti�||d|ti�i�S(Ni(Rt_subprocesstGetCurrentProcesstDuplicateHandletDUPLICATE_SAME_ACCESStDetach(thandlettarget_processtinheritable((s-/usr/lib/python2.6/multiprocessing/forking.pyR�s
cBs_eZdZei�Zd�Zed��Zed��Z dd�Zd�Zd�Z
RS(sH
Start a subprocess to run the code of a process object
c
Cs7ti�\}}tti|�dt�}ti|�t�|g}did�|D��}t i
t|ddddddd� \}}}} |i
�t|�||_d|_||_t|i�}
ti|d�}t|�ti_z$t|
|t�t||t�Wdti`|i�XdS(NRjt cssx|]}d|VqWdS(s"%s"N((t.0tx((s-/usr/lib/python2.6/multiprocessing/forking.pys <genexpr>�s iitwb(R1tpipeRtmsvcrtt
get_osfhandletTrueRtget_command_linetjoinRct
CreateProcessR`RtCloseR3R0t_handletget_preparation_datat_nametfdopentintRt_tlstprocess_handleR\R[(RR8trfdtwfdtrhandletcmdthpthtR3ttidt prep_datatto_child((s-/usr/lib/python2.6/multiprocessing/forking.pyR:�s(
-
cCsttidd�dj S(NR}(RRR|R(((s-/usr/lib/python2.6/multiprocessing/forking.pyR�scCst|tii�S(N(RRR|R}(Rh((s-/usr/lib/python2.6/multiprocessing/forking.pytduplicate_for_child�scCs�|idjo�|djo
ti}ntdt|dd��}tit|i�|�}|tijo:ti |i�}|t
joti}n||_q�n|iS(Nii�g�?(
R0RRctINFINITEtmaxR{tWaitForSingleObjectRwt
WAIT_OBJECT_0tGetExitCodeProcesst TERMINATERORP(RRHtmsecsRKR9((s-/usr/lib/python2.6/multiprocessing/forking.pyRMs
cCs|idd�S(NRHi(RM(R((s-/usr/lib/python2.6/multiprocessing/forking.pyRDscCsk|idjoWytit|i�t�Wqgtj
o'|idd�djo�qcqgXndS(NRHg�������?( R0RRctTerminateProcessR{RwR�tWindowsErrorRM(R((s-/usr/lib/python2.6/multiprocessing/forking.pyRSsN(RRt__doc__tthreadt_localR|R:RVRR�RRMRDRS(((s-/usr/lib/python2.6/multiprocessing/forking.pyR�s ! cCsKt|�djo0|ddjot|�djpt�tStSdS(sE
Return whether commandline indicates we are forking
iis--multiprocessing-forkiN(tlenR@RrRT(targv((s-/usr/lib/python2.6/multiprocessing/forking.pyt
is_forking s$cCs)tti�ot�ti�ndS(sM
Run code for process object if this in not the main process
N(R�R,R�tmainR(((s-/usr/lib/python2.6/multiprocessing/forking.pytfreeze_support+scCsqti�idjo tti�otd��nttdt�oti dgSd}t
d|dgSdS(sR
Returns prefix of command line used for spawning a child process
s�
Attempt to start a new process before the current process
has finished its bootstrapping phase.
This probably means that you are on Windows 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 a Windows executable.R_s--multiprocessing-forks0from multiprocessing.forking import main; main()s-cN((Rtcurrent_processt _identityR�R,R�R RRTt
executableR`(tprog((s-/usr/lib/python2.6/multiprocessing/forking.pyRs4s&
cCs�tti�pt�ttid�}ti|ti�}ti |d�}t
ti�_
t|�}t|�t|�}tti�_
|i�|i�}t|�dS(s>
Run code specifed by data received over pipe
i����trbN(R�R,R�R@R{Rptopen_osfhandleR1tO_RDONLYRzRrRR�t_inheritingRZtprepareRTRR6R(Rhtfdtfrom_parenttpreparation_dataRtexitcode((s-/usr/lib/python2.6/multiprocessing/forking.pyR�Ns
cCs2ddkl}l}td|dtidtid|dtidti �i
�}|dj o|i�|d <nt
p�ttid
dd�}|o%tiddjotid}n|dj oZtii|�o,tidj otiiti|�}ntii|�|d<q.n|S(sU
Return info about parent needed by child to unpickle process object
i(t_loggert_log_to_stderrtnametsys_pathtsys_argvt
log_to_stderrtorig_dirtauthkeyt log_levelt__main__t__file__its-ct main_pathN(R�s-c(RR�R�tdictR,tpathR�RtORIGINAL_DIRR�R�RtgetEffectiveLeveltWINEXERR4R1tisabsRttnormpath(R�R�R�tdR�((s-/usr/lib/python2.6/multiprocessing/forking.pyRxds(
cCsXti�ptdt|�i��nt|�ti|i��|i|iffS(NsLBy default %s objects can only be shared between processes
using inheritance( RRR R
RR�tfilenotreadabletwritable(tconn((s-/usr/lib/python2.6/multiprocessing/forking.pytreduce_connection�s
c
Cs�titid�d|jo|dti�_nd|jo|dti�_nd|jo|doti �nd|joti
�i|d�nd|jo|dt_nd|jo|dt_
nd|joti|d�nd |jo|d t_nd
|jo�|d
}tiitii|��d}|djo"tiitii|��}n|d
joNddk}|djo
d}nWtii|�id�o%tiitii|��g}ntii|�g}|tijp
t|�|i||�\}}}z|id|||�}Wd|o|i�nX|tid<d|_xR|ii�D]=} y!| idjo
d| _nWq�tj
oq�Xq�Wq�ndS(sE
Try to get current process ready to unpickle process object
R�R�R�R�R�R�R�tdirR�R�iR:tipythoni����Ns__init__.pyt__parents_main__( told_main_modulestappendR,R4RR�R�t_authkeyRR�t
get_loggertsetLevelR�R�R1tchdirR�tsplitexttbasenametdirnametimpRt
startswithR@tfind_moduletload_moduleRRt__dict__tvaluesRt Exception(
tdataR�t main_nameR�tdirsR]t path_nametetctmain_moduleR((s-/usr/lib/python2.6/multiprocessing/forking.pyR��sZ
"
"
%
(DR1R,ROtmultiprocessingRRt__all__RtpickleR
RR RR
tsaveR"tlistR�R{t__add__t functoolsR#tImportErrorR)R$tplatformRER7RtdupRRtobjectRR�RpRct_multiprocessingR*RWRXRYRZR[RR\R�RRTR�tExitProcesstCloseHandleR�tlowertendswithR�Rttexec_prefixR`RbR�R�RsR�RxR�R�R�(((s-/usr/lib/python2.6/multiprocessing/forking.pyt<module> sj
B"
N "