관리-도구
편집 파일: popen_forkserver.cpython-39.pyc
a R�f� � @ 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 �E/opt/alt/python39/lib64/python3.9/multiprocessing/popen_forkserver.py�__init__ s z_DupFd.__init__c C s t �� | j S r )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� �|� d S r )�_fds�superr )r �process_obj�� __class__r r r ! s zPopen.__init__c C s | 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�}t�� }t| � z$t�||� t�||� W td � n td � 0 t� | j �\| _}t� |�}t�| tj|| jf�| _t|ddd��}|�|�� � W d � n1 s�0 Y t�| j�| _d S )N�wbT)�closefd)r Zget_preparation_data�_name�io�BytesIOr r �dumpr Zconnect_to_new_processr �sentinel�os�dupr ZFinalizeZ close_fds� finalizer�open�write� getbuffer�read_signed�pid)r r Z prep_dataZbuf�wZ _parent_w�fr r r �_launch) s �,z Popen._launchc C sp | j d u rjddlm} |tjkr$dnd }|| jg|�s:d S zt�| j�| _ W n tt fyh d| _ Y n0 | j S )Nr )�wait� ) � returncodeZmultiprocessing.connectionr0 r% �WNOHANGr$ r r+ �OSError�EOFError)r �flagr0 Ztimeoutr r r �poll= s z Popen.poll) r r r �methodr ZDupFdr r r/ r% r3 r7 � __classcell__r r r r r s )r! r% �contextr r ZHAVE_SEND_HANDLE�ImportError� r r r r �__all__�objectr r r r r r �<module> s