
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3

  \¤  ã               @   sŠ   d dl Z d dlZddlmZmZ ejs.edƒ‚ddlmZ ddlm	Z	 ddlm
Z
 ddlmZ d	gZG d
d„ deƒZG dd	„ d	e	jƒZdS )é    Né   )Ú	reductionÚset_spawning_popenz,No support for sending fds between processes)Ú
forkserver)Ú
popen_fork)Úspawn)ÚutilÚPopenc               @   s   e Zd Zdd„ Zdd„ ZdS )Ú_DupFdc             C   s
   || _ d S )N)Úind)Úselfr   © r   ú8/usr/lib64/python3.6/multiprocessing/popen_forkserver.pyÚ__init__   s    z_DupFd.__init__c             C   s   t jƒ | j S )N)r   Zget_inherited_fdsr   )r   r   r   r   Údetach   s    z_DupFd.detachN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r
      s   r
   c                   sB   e Zd ZdZeZ‡ fdd„Zdd„ Zdd„ Ze	j
fdd	„Z‡  ZS )
r	   r   c                s   g | _ tƒ j|ƒ d S )N)Ú_fdsÚsuperr   )r   Úprocess_obj)Ú	__class__r   r   r   !   s    zPopen.__init__c             C   s   | j j|ƒ t| j ƒd S )Nr   )r   ÚappendÚlen)r   Úfdr   r   r   Úduplicate_for_child%   s    zPopen.duplicate_for_childc             C   s¤   t j|jƒ}tjƒ }t| ƒ ztj||ƒ tj||ƒ W d td ƒ X tj	| j
ƒ\| _}tj| tj| jfƒ t|ddd��}|j|jƒ ƒ W d Q R X tj| jƒ| _d S )NÚwbT)Úclosefd)r   Zget_preparation_dataÚ_nameÚioÚBytesIOr   r   Údumpr   Zconnect_to_new_processr   Úsentinelr   ZFinalizeÚosÚcloseÚopenÚwriteÚ	getbufferÚread_unsignedÚpid)r   r   Z	prep_dataZbufÚwÚfr   r   r   Ú_launch)   s    
zPopen._launchc             C   sr   | j d krlddlm} |tjkr$dnd }|| jg|ƒs:d S ytj| jƒ| _ W n tt	fk
rj   d| _ Y nX | j S )Nr   )Úwaitéÿ   )
Ú
returncodeZmultiprocessing.connectionr-   r#   ÚWNOHANGr"   r   r(   ÚOSErrorÚEOFError)r   Úflagr-   Ztimeoutr   r   r   Úpoll9   s    
z
Popen.poll)r   r   r   Úmethodr
   ZDupFdr   r   r,   r#   r0   r4   Ú__classcell__r   r   )r   r   r	      s   )r   r#   Úcontextr   r   ZHAVE_SEND_HANDLEÚImportErrorÚ r   r   r   r   Ú__all__Úobjectr
   r	   r   r   r   r   Ú<module>   s   
