grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026a ´iI ã@s6ddlZddlZddlmZdgZGdd„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)rÚ_flush_std_streamsÚ returncodeÚ finalizerÚ_launch)ÚselfÚ process_obj©r ú2/usr/lib64/python3.9/multiprocessing/popen_fork.pyÚ__init__szPopen.__init__cCs|Srr )r Úfdr r rÚduplicate_for_childszPopen.duplicate_for_childcCsR|jdurLzt |j|¡\}}Wnty4YdS0||jkrLt |¡|_|jSr)rÚosÚwaitpidÚpidÚOSErrorÚwaitstatus_to_exitcode)r ÚflagrÚstsr r rÚpolls    z Popen.pollNcCsN|jdurH|dur0ddlm}||jg|ƒs0dS| |dkrBtjnd¡S|jS)Nr)Úwaitg)rÚmultiprocessing.connectionrÚsentinelrrÚWNOHANG)r Útimeoutrr r rr$s  z Popen.waitcCsV|jdurRzt |j|¡Wn4ty.Yn$tyP|jdd�durL‚Yn0dS)Ngš™™™™™¹?)r)rrÚkillrÚProcessLookupErrorrr)r Úsigr r rÚ _send_signal.s   zPopen._send_signalcCs| tj¡dSr)r"ÚsignalÚSIGTERM©r r r rÚ terminate8szPopen.terminatecCs| tj¡dSr)r"r#ÚSIGKILLr%r r rr;sz Popen.killc Cs¢d}t ¡\}}t ¡\}}t ¡|_|jdkrnz.t |¡t |¡|j|d�}Wt |¡qžt |¡0n0t |¡t |¡t |tj ||f¡|_ ||_ dS)Nrr)Úparent_sentinel) rÚpiperrÚcloseÚ _bootstrapÚ_exitrÚFinalizeÚ close_fdsr r)r r ÚcodeÚparent_rÚchild_wÚchild_rÚparent_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 rÚs