o ?OgI @s6ddlZddlZddlmZdgZGdddeZdS)N)utilPopenc@s`eZdZdZddZddZejfddZdd d Z d d Z d dZ ddZ ddZ ddZdS)rforkcCs"td|_d|_||dSN)rZ_flush_std_streams returncode finalizer_launch)self process_objr A/opt/alt/python310/lib64/python3.10/multiprocessing/popen_fork.py__init__szPopen.__init__cCs|Srr )r fdr r r duplicate_for_childszPopen.duplicate_for_childcCsR|jdur&z t|j|\}}Wn tyYdSw||jkr&t||_|jSr)roswaitpidpidOSErrorwaitstatus_to_exitcode)r flagrstsr r r polls    z Popen.pollNcCsP|jdur%|durddlm}||jg|sdS||dkr"tjSdS|jS)Nr)waitg)rZmultiprocessing.connectionrsentinelrrWNOHANG)r timeoutrr r r r$s  z Popen.waitcCs\|jdur,z t|j|WdStyYdSty+|jdddur(YdSwdS)Ng?)r)rrkillrProcessLookupErrorrr)r Zsigr r r _send_signal.s   zPopen._send_signalcC|tjdSr)rsignalSIGTERMr r r r terminate8zPopen.terminatecCr r)rr!SIGKILLr#r r r r;r%z Popen.killc Csd}t\}}t\}}t|_|jdkr7zt|t||j|d}Wt|dSt|wt|t|t|tj ||f|_ ||_ dS)Nrr)Zparent_sentinel) rpiperrclose _bootstrap_exitrZFinalizeZ close_fdsrr)r r codeZparent_rZchild_wZchild_rZparent_wr r r r >s           z Popen._launchcCs|jdur |dSdSr)rr#r r r r(Qs  z Popen.closer)__name__ __module__ __qualname__methodrrrrrrrr$rr r(r r r r r s    )rr!r__all__objectrr r r r s