Current File : //snap/core22/current/lib/python3.10/multiprocessing/__pycache__/popen_forkserver.cpython-310.pyc |
o
E�h� � @ s� d dl Z d dlZddlmZmZ ejsed��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 �7/usr/lib/python3.10/multiprocessing/popen_forkserver.py�__init__ s
z_DupFd.__init__c C s t �� | j S r )r �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 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| � zt�||� t�||� W td � ntd � w t� | j
�\| _}t�
|�}t�| tj|| jf�| _t|ddd��}|�|�� � W d � n1 sYw Y t�| j�| _d S )N�wbT)�closefd)r �get_preparation_data�_name�io�BytesIOr r �dumpr �connect_to_new_processr �sentinel�os�dupr �Finalize� close_fds� finalizer�open�write� getbuffer�read_signed�pid)r
r � prep_data�buf�w� _parent_w�fr r r �_launch) s
��z
Popen._launchc C sx | j d u r9ddlm} |tjkrdnd }|| jg|�sd S zt�| j�| _ W | j S tt fy8 d| _ Y | j S w | j S )Nr )�wait� )
�
returncode�multiprocessing.connectionr8 r( �WNOHANGr'