U iÛf ã @ s6 d dl Z d 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/python38/lib64/python3.8/multiprocessing/popen_fork.pyÚ__init__ s zPopen.__init__c C s |S r r )r Úfdr r r Úduplicate_for_child s zPopen.duplicate_for_childc C s€ | j d krzzt | j|¡\}}W n( tk rH } z W Y ¢d S d }~X Y nX || jkrzt |¡rnt |¡ | _ nt |¡| _ | j S r )r ÚosÚwaitpidÚpidÚOSErrorÚWIFSIGNALEDÚWTERMSIGÚ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 krVzt | 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_signal2 s zPopen._send_signalc C s | tj¡ d S r )r" ÚsignalÚSIGTERM©r r r r Ú terminate<