U :e @s6ddlZddlZddlmZdgZGdddeZdS)N)utilPopenc@s`eZdZdZddZddZejfddZdd d Z d d Z d dZ ddZ ddZ ddZdS)rforkcCs"td|_d|_||dSN)r_flush_std_streams returncode finalizer_launch)self process_objr ?/usr/local/python38/lib/python3.8/multiprocessing/popen_fork.py__init__szPopen.__init__cCs|Srr )r fdr r rduplicate_for_childszPopen.duplicate_for_childc Cs|jdkrzt|j|\}}Wn(tk rH}z WYdSd}~XYnX||jkrt|rnt| |_n$t|std |t ||_|jS)NzStatus is {:n}) roswaitpidpidOSError WIFSIGNALEDWTERMSIG WIFEXITEDAssertionErrorformat WEXITSTATUS)r flagrstser r rpolls    z Popen.pollNcCsN|jdkrH|dk r0ddlm}||jg|s0dS||dkrBtjndS|jS)Nr)waitg)rmultiprocessing.connectionr sentinelrrWNOHANG)r timeoutr r r rr (s  z Popen.waitcCsZ|jdkrVzt|j|Wn8tk r0Yn&tk rT|jdddkrPYnXdS)Ng?)r$)rrkillrProcessLookupErrorrr )r sigr r r _send_signal2s zPopen._send_signalcCs|tjdSr)r(signalSIGTERMr r r r terminate<szPopen.terminatecCs|tjdSr)r(r)SIGKILLr+r r rr%?sz Popen.killc Csd}t\}}t\}}t|_|jdkrdz$t|t||j|d}W5t|Xn0t|t|t|tj ||f|_ ||_ dS)Nrr)parent_sentinel) rpiperr_exitclose _bootstraprFinalize close_fdsr r")r r codeparent_rchild_wchild_rparent_wr r rr Bs          z Popen._launchcCs|jdk r|dSr)r r+r r rr1Us z Popen.close)N)__name__ __module__ __qualname__methodrrrr#rr r(r,r%r r1r r r rr s  )rr)r__all__objectrr r r rs