B :J>\bò–Cã@s>ddlZddlZddlZddlmZdgZGdd„deƒZdS)éNé)ÚutilÚPopenc@s`eZdZdZdd„Zdd„Zejfdd„Zdd d „Z d d „Z d d„Z dd„Z dd„Z dd„ZdS)rÚforkcCs"t ¡d|_d|_| |¡dS)N)rZ_flush_std_streamsÚ returncodeÚ finalizerÚ_launch)ÚselfÚ process_obj©r ú=/opt/alt/python37/lib/python3.7/multiprocessing/popen_fork.pyÚ__init__szPopen.__init__cCs|S)Nr )r Úfdr r r Úduplicate_for_childszPopen.duplicate_for_childc Cs’|jdkrŒyt |j|¡\}}Wn"tk rB}zdSd}~XYnX||jkrŒt |¡rht |¡ |_n$t |¡s€td  |¡ƒ‚t  |¡|_|jS)NzStatus is {:n}) rÚosÚwaitpidÚpidÚOSErrorÚ WIFSIGNALEDÚWTERMSIGÚ WIFEXITEDÚAssertionErrorÚformatÚ WEXITSTATUS)r ÚflagrÚstsÚer r r Úpolls    z Popen.pollNcCsN|jdkrH|dk r0ddlm}||jg|ƒs0dS| |dkrBtjnd¡S|jS)Nr)Úwaitg)rZmultiprocessing.connectionrÚsentinelrrÚWNOHANG)r Útimeoutrr r r r)s  z Popen.waitcCsZ|jdkrVyt |j|¡Wn8tk r0Yn&tk rT|jdddkrP‚YnXdS)Ngš™™™™™¹?)r!)rrÚkillrÚProcessLookupErrorrr)r Zsigr r r Ú _send_signal3s zPopen._send_signalcCs| tj¡dS)N)r$ÚsignalÚSIGTERM)r r r r Ú terminate=szPopen.terminatecCs| tj¡dS)N)r$r%ÚSIGKILL)r r r r r"@sz Popen.killc Csrd}t ¡\}}t ¡|_|jdkrJzt |¡| ¡}Wdt |¡Xn$t |¡t |tj|f¡|_ ||_ dS)Nrr) rÚpiperrÚcloseÚ _bootstrapÚ_exitrZFinalizerr)r r ÚcodeZparent_rZchild_wr r r rCs      z Popen._launchcCs|jdk r| ¡dS)N)r)r r r r r*Rs z Popen.close)N)Ú__name__Ú __module__Ú __qualname__Úmethodr rrr rrr$r'r"rr*r r r r r s  )rÚsysr%ÚrÚ__all__Úobjectrr r r r Ús