File: //opt/alt/python35/lib64/python3.5/multiprocessing/__pycache__/popen_fork.cpython-35.opt-1.pyc
��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>