e ft @scddlZddlZddlZddlZddlmZdgZGdddeZdS)N)utilPopenc@sgeZdZdZddZddZejddZdd d Z d d Z d dZ dS)rforkcCs4tjjtjjd|_|j|dS)N)sysstdoutflushstderr returncode_launch)self process_objr?/opt/alt/python34/lib64/python3.4/multiprocessing/popen_fork.py__init__s   zPopen.__init__cCs|S)Nr)r fdrrrduplicate_for_childszPopen.duplicate_for_childcCs|jdkrxhytj|j|\}}WnAtk rt}z!|jtjkr^wndSWYdd}~XqXPqW||jkrtj|rtj| |_qtj |st tj ||_qn|jS)N) r oswaitpidpidOSErrorerrnoZEINTR WIFSIGNALEDWTERMSIG WIFEXITEDAssertionError WEXITSTATUS)r Zflagrstserrrpollsz Popen.pollNcCsp|jdkri|dk rGddlm}||jg|sGdSn|j|dkrbtjndS|jS)Nr)waitg)r Zmultiprocessing.connectionr sentinelrrWNOHANG)r timeoutr rrrr /s "z Popen.waitc Cst|jdkrpytj|jtjWqptk r=Yqptk rl|jdddkrhnYqpXndS)Nr#g?) r rkillrsignalSIGTERMProcessLookupErrorrr )r rrr terminate9s  zPopen.terminatec Csd}tj\}}tj|_|jdkrzEtj|dtjkrnddl}|jn|j }Wdtj |Xn/tj|t j |tj|f||_ dS)Nrrrandom)rpiperrclosermodulesr)Zseed _bootstrap_exitrZFinalizer!)r r codeZparent_rZchild_wr)rrrr Cs    z Popen._launch) __name__ __module__ __qualname__methodrrrr"rr r(r rrrrrs    ) rrr%rr__all__objectrrrrrs