ìÕYf ã @ sW d d l Z d d l Z d d l Z d d l m Z d g Z Gd d „ d e ƒ Z d S)é Né )ÚutilÚPopenc @ sg e Z d Z d Z d d „ Z d d „ Z e j d d „ Z d d d „ Z d d „ Z d d „ Z d S)r Úforkc C s4 t j j ƒ t j j ƒ d | _ | j | ƒ d S)N)ÚsysÚstdoutÚflushÚstderrÚ returncodeÚ_launch)ÚselfÚprocess_obj© r ú?/opt/alt/python35/lib64/python3.5/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 k r¨ xP y t j | j | ƒ \ } } Wn) t k r\ } z d SWYd d } ~ Xq XPq W| | j k r¨ t j | ƒ r– t j | ƒ | _ n t j | ƒ | _ | j S)N)r ÚosÚwaitpidÚpidÚOSErrorÚWIFSIGNALEDÚWTERMSIGÚWEXITSTATUS)r Zflagr ÚstsÚer r r Úpoll s z Popen.pollNc C sm | j d k rf | d k rD d d l m } | | j g | ƒ sD d S| j | d k r_ t j n d ƒ S| j S)Nr )Úwaitg )r Zmultiprocessing.connectionr Úsentinelr r ÚWNOHANG)r Útimeoutr r r r r , s "z Popen.waitc C sn | j d k rj y t j | j t j ƒ Wn> t k r= Yn- t k ri | j d d ƒ d k re ‚ Yn Xd S)Nr gš™™™™™¹?) r r Úkillr ÚsignalÚSIGTERMÚProcessLookupErrorr r )r r r r Ú terminate6 s zPopen.terminatec C s¿ d } t j ƒ \ } } t j ƒ | _ | j d k rŒ zB t j | ƒ d t j k rk d d l } | j ƒ | j ƒ } Wd t j | ƒ Xn/ t j | ƒ t j | t j | f ƒ | | _ d S)Nr r Úrandom)r Úpiper r Úcloser Úmodulesr&