<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
U
    if                     @   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   E/opt/alt/python38/lib64/python3.8/multiprocessing/popen_forkserver.py__init__   s    z_DupFd.__init__c                 C   s   t  | j S r   )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 | d S r   )_fdssuperr   )r   process_obj	__class__r   r   r   !   s    zPopen.__init__c                 C   s   | 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}t }t|  zt|| t|| W 5 td  X t	| j
\| _}t|}t| tj|| jf| _t|ddd}||  W 5 Q R X t| j| _d S )NwbT)closefd)r   Zget_preparation_data_nameioBytesIOr   r   dumpr   Zconnect_to_new_processr   sentinelosdupr   ZFinalizeZ	close_fds	finalizeropenwrite	getbufferread_signedpid)r   r   Z	prep_dataZbufwZ	_parent_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 zt| j| _ W n tt	fk
rj   d| _ Y nX | j S )Nr   )wait   )

returncodeZmultiprocessing.connectionr0   r%   WNOHANGr$   r   r+   OSErrorEOFError)r   flagr0   Ztimeoutr   r   r   poll=   s    
z
Popen.poll)r   r   r   methodr
   ZDupFdr   r   r/   r%   r3   r7   __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   
