B
:J>\bC @ s> d dl Z d dlZd dlZddlmZ dgZG dd deZdS ) N )utilPopenc @ s` e Zd ZdZdd Zdd ZejfddZdd 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)selfprocess_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 sz | j d krtyt| j|\}}W n" tk
rB } zd S d }~X Y nX || jkrtt|rht| | _ nt|| _ | j S )N)r oswaitpidpidOSErrorWIFSIGNALEDWTERMSIGWEXITSTATUS)r flagr stser r r poll s
z
Popen.pollNc C sN | j d krH|d k r0ddlm} || jg|s0d S | |dkrBtjndS | 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! signalSIGTERM)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