관리-도구
편집 파일: popen_forkserver.cpython-36.pyc
3 \� � @ s� d dl Z d dlZddlmZmZ ejs.ed��ddlmZ ddlm Z ddlm Z ddlmZ d gZG d d� de �ZG dd � d e j�ZdS ) � N� )� reduction�set_spawning_popenz,No support for sending fds between processes)� forkserver)� popen_fork)�spawn)�util�Popenc @ s e Zd Zdd� Zdd� ZdS )�_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 Zget_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 Zd ZdZeZ� fdd�Zdd� Zdd� Ze j fdd �Z� ZS ) r r c s g | _ t� j|� d S )N)�_fds�superr )r �process_obj)� __class__r r r ! s zPopen.__init__c C s | j j|� t| j �d S )Nr )r �append�len)r �fdr r r �duplicate_for_child% s zPopen.duplicate_for_childc C s� t j|j�}tj� }t| � ztj||� tj||� W d td � X tj | j �\| _}tj | tj| jf� t|ddd��}|j|j� � W d Q R X tj| j�| _d S )N�wbT)�closefd)r Zget_preparation_data�_name�io�BytesIOr r �dumpr Zconnect_to_new_processr �sentinelr ZFinalize�os�close�open�write� getbuffer� read_unsigned�pid)r r Z prep_dataZbuf�w�fr r r �_launch) s z Popen._launchc C sr | j d krlddlm} |tjkr$dnd }|| jg|�s:d S ytj| j�| _ W n tt fk rj d| _ Y nX | j S )Nr )�wait� ) � returncodeZmultiprocessing.connectionr- r# �WNOHANGr"