B
:J>\bò–Cã @ s> d dl Z d dlZd dlZddlmZ dgZG dd„ deƒZdS )é Né )ÚutilÚPopenc @ s` e Zd ZdZdd„ Zdd„ Zejfdd„Zdd d
„Z dd„ Z
d
d„ Zdd„ Zdd„ Z
dd„ ZdS )r Úforkc C s" t ¡ d | _d | _| |¡ d S )N)r Z_flush_std_streamsÚ
returncodeÚ finalizerÚ_launch)ÚselfÚprocess_obj© r ú?/opt/alt/python37/lib64/python3.7/multiprocessing/popen_fork.pyÚ__init__ s zPopen.__init__c C s |S )Nr )r Úfdr r r Úduplicate_for_child s zPopen.duplicate_for_childc
C s’ | j d krŒyt | j|¡\}}W n" tk
rB } zd S d }~X Y nX || jkrŒt |¡rht |¡ | _ n$t |¡s€td |¡ƒ‚t
|¡| _ | j S )NzStatus is {:n})r ÚosÚwaitpidÚpidÚOSErrorÚWIFSIGNALEDÚWTERMSIGÚ WIFEXITEDÚAssertionErrorÚformatÚWEXITSTATUS)r Úflagr ÚstsÚer r r Úpoll s
z
Popen.pollNc C sN | j d krH|d k r0ddlm} || jg|ƒs0d S | |dkrBtjnd¡S | j S )Nr )Úwaitg )r Zmultiprocessing.connectionr Úsentinelr r ÚWNOHANG)r Útimeoutr r r r r ) s
z
Popen.waitc C sZ | j d krVyt | j|¡ W n8 tk
r0 Y n& tk
rT | jddd krP‚ Y nX d S )Ngš™™™™™¹?)r! )r r Úkillr ÚProcessLookupErrorr r )r Zsigr r r Ú_send_signal3 s
zPopen._send_signalc C s | tj¡ d S )N)r$ ÚsignalÚSIGTERM)r r r r Ú terminate= s zPopen.terminatec C s | tj¡ d S )N)r$ r% ÚSIGKILL)r r r r r" @ s z
Popen.killc C sr d}t ¡ \}}t ¡ | _| jdkrJzt |¡ | ¡ }W d t |¡ X n$t |¡ t | t j|f¡| _ || _
d S )Nr r )r Úpiper r ÚcloseÚ
_bootstrapÚ_exitr ZFinalizer r )r r
ÚcodeZparent_rZchild_wr r r r C s
z
Popen._launchc C s | j d k r| ¡ d S )N)r )r r r r r* R s
zPopen.close)N)Ú__name__Ú
__module__Ú__qualname__Úmethodr
r r r r r r$ r' r" r r* r r r r r
s
)r Úsysr% Ú r Ú__all__Úobjectr r r r r Ú