a  zeI @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 N/opt/bitninja-python-dojo/embedded/lib/python3.9/multiprocessing/popen_fork.py__init__szPopen.__init__cCs|Srr )r fdr r rduplicate_for_childszPopen.duplicate_for_childcCsR|jdurLzt|j|\}}Wnty4YdS0||jkrLt||_|jSr)roswaitpidpidOSErrorwaitstatus_to_exitcode)r flagrstsr r rpolls    z Popen.pollNcCsN|jdurH|dur0ddlm}||jg|s0dS||dkrBtjndS|jS)Nr)waitg)rmultiprocessing.connectionrsentinelrrWNOHANG)r timeoutrr r rr$s  z Popen.waitcCsV|jdurRzt|j|Wn4ty.Yn$tyP|jdddurLYn0dS)Ng?)r)rrkillrProcessLookupErrorrr)r sigr r r _send_signal.s   zPopen._send_signalcCs|tjdSr)r"signalSIGTERMr r r r terminate8szPopen.terminatecCs|tjdSr)r"r#SIGKILLr%r r rr;sz Popen.killc Csd}t\}}t\}}t|_|jdkrnz.t|t||j|d}Wt|qt|0n0t|t|t|tj ||f|_ ||_ dS)Nrr)parent_sentinel) rpiperrclose _bootstrap_exitrFinalize close_fdsr r)r r codeparent_rchild_wchild_rparent_wr r rr >s          z Popen._launchcCs|jdur|dSr)r r%r r rr*Qs z Popen.close)N)__name__ __module__ __qualname__methodrrrrrrr"r&rr r*r r r rr s  )rr#r__all__objectrr r r rs