<!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>
a
    XC?h                     @   sp   d dl Z d dlZddlmZ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_popen)
popen_fork)spawn)utilPopenc                   @   s   e Zd Zdd Zdd ZdS )_DupFdc                 C   s
   || _ d S Nfdselfr    r   F/opt/alt/python39/lib64/python3.9/multiprocessing/popen_spawn_posix.py__init__   s    z_DupFd.__init__c                 C   s   | j S r
   r   )r   r   r   r   detach   s    z_DupFd.detachN)__name__
__module____qualname__r   r   r   r   r   r   r	      s   r	   c                       s4   e Zd ZdZeZ fddZdd Z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 | |S r
   )r   appendr   r   r   r   duplicate_for_child"   s    zPopen.duplicate_for_childc                 C   s  ddl m} | }| j| t|j}t	 }t
|  z$t|| t|| W t
d  n
t
d  0 d  } } }}	zt \}}t \}}	tj||d}
| j||g tt |
| j| _|| _t|	ddd}||  W d    n1 s0    Y  W g }||	fD ]}|d ur|| qt| tj|| _||fD ]}|d urRt| qRn`g }||	fD ]}|d ur||| q|t| tj|| _||fD ]}|d urt| q0 d S )Nr   )resource_tracker)
tracker_fdZpipe_handlewbF)closefd) r   Zgetfdr   r   r   Zget_preparation_data_nameioBytesIOr   r   dumpospipeZget_command_lineextendr   Zspawnv_passfdsZget_executablepidsentinelopenwrite	getbufferZFinalizeZ	close_fds	finalizerclose)r   r   r   r   Z	prep_datafpZparent_rZchild_wZchild_rZparent_wcmdfZfds_to_closer   r   r   r   _launch&   sP    
0



zPopen._launch)
r   r   r   methodr	   ZDupFdr   r   r3   __classcell__r   r   r   r   r      s
   )r#   r&   contextr   r   r!   r   r   r   __all__objectr	   r   r   r   r   r   <module>   s   
