�
�WcI � �@ � d dl Z d dlZddlmZ dgZ G d� de� ZdS )� N� )�util�Popenc �b � e Zd ZdZd� Zd� Zej fd�Zdd�Z d� Z
d� Zd � Zd
� Z
d� ZdS )
r �forkc �r � t j � d | _ d | _ | j |� d S �N)r �_flush_std_streams�
returncode� finalizer�_launch)�self�process_objs �3/usr/lib64/python3.12/multiprocessing/popen_fork.py�__init__zPopen.__init__ s4 � ����!�!����������[�!�!�!�!� c � � |S r � )r �fds r �duplicate_for_childzPopen.duplicate_for_child s � �� r c �� � | j �R t j | j |� \ }}|| j k rt j
|� | _ | j S # t $ r Y d S w xY wr )r �os�waitpid�pid�OSError�waitstatus_to_exitcode)r �flagr �stss r �pollz
Popen.poll sz � ��?�?�"�
��:�:�d�h�h��5���S�
�d�h�h���"$�";�";�C�"@��������
�
�
�
� �t�t�
���s �%A+ �+
A9�8A9Nc �� � | j �M|�ddlm} || j g|� sd S | j |dk rt
j � S d� S | j S )Nr )�waitg )r �multiprocessing.connectionr! �sentinelr r �WNOHANG)r �timeoutr! s r r! z
Popen.wait$ sk � ��?�?�"��"�;�;�;�;�;�;��t�T�]�]�O�W�5�5��4��9�9�7�c�>�>�R�Z�Z�A�A�q�A�A����r c �� � | j �% t j | j |� d S d S # t $ r Y d S t
$ r | j
d�� �� Y d S w xY w)Ng�������?)r% )r r �killr �ProcessLookupErrorr r! )r �sigs r �_send_signalzPopen._send_signal. s� � ��?�?�"�
�������#�&�&�&�&� #�"�� &�
�
�
�����
�
�
��9�9�S�9�)�1�� 2�1�1�
���s �"4 �
A"�A"�!A"c �H � | j t j � d S r )r* �signal�SIGTERM�r s r � terminatezPopen.terminate8 � � ����&�.�.�)�)�)�)r c �H � | j t j � d S r )r* r, �SIGKILLr. s r r'