<!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                     @   s   d dl Z d dlZd dlZd dlZd dlZddlmZmZmZ ddl	m
Z
 ddl	mZ dgZdZejdkoreed	d
Zej dZdd Zeejej Zdd ZG dd deZdS )    N   )	reductionget_spawning_popenset_spawning_popen)spawn)utilPopeni   Zwin32frozenFzpythonservice.exec                 C   s    | |kpt j| t j|kS N)ospathnormcase)Zp1Zp2 r   F/opt/alt/python39/lib64/python3.9/multiprocessing/popen_spawn_win32.py_path_eq   s    r   c                  G   s   | D ]}t | qd S r
   )_winapiCloseHandle)Zhandleshandler   r   r   _close_handles   s    r   c                   @   sJ   e Zd ZdZdZdd Zdd Zddd	Zd
d Zdd Z	e	Z
dd ZdS )r   z@
    Start a subprocess to run the code of a process object
    r   c                 C   sr  t |j}td d\}}t|d}t jt	 |d}d
dd |D }t  }trt|tjrtj}tj }tj|d< nd }t|ddd	}	z0t||d d d
d|d d 	\}
}}}t| W n   t|  Y n0 || _d | _|
| _t|
| _t| t| jt|f| _t|  z$t !||	 t !||	 W td  n
td  0 W d    n1 sd0    Y  d S )Nr   )Z
parent_pidZpipe_handle c                 s   s   | ]}d | V  qdS )z"%s"Nr   ).0xr   r   r   	<genexpr>9       z!Popen.__init__.<locals>.<genexpr>__PYVENV_LAUNCHER__wbT)closefdF)"r   Zget_preparation_data_namer   Z
CreatePipemsvcrtZopen_osfhandleZget_command_liner   getpidjoinZget_executableWINENVr   sys
executable_base_executableenvironcopyopenZCreateProcessr   pid
returncode_handleintsentinelr   ZFinalizer   	finalizerr   r   dump)selfZprocess_objZ	prep_dataZrhandleZwhandleZwfdcmdZ
python_exeenvZto_childZhpZhtr(   tidr   r   r   __init__,   sF    



zPopen.__init__c                 C   s   | t  u sJ t|| jS r
   )r   r   Z	duplicater,   )r/   r   r   r   r   duplicate_for_childa   s    zPopen.duplicate_for_childNc                 C   st   | j d u rn|d u rtj}ntdt|d d }tt| j|}|tjkrnt| j}|t	krht
j }|| _ | j S )Nr   i  g      ?)r)   r   ZINFINITEmaxr+   ZWaitForSingleObjectr*   ZWAIT_OBJECT_0ZGetExitCodeProcess	TERMINATEsignalSIGTERM)r/   timeoutZmsecsrescoder   r   r   waite   s    

z
Popen.waitc                 C   s   | j ddS )Nr   r9   )r<   r/   r   r   r   pollu   s    z
Popen.pollc                 C   sJ   | j d u rFztt| jt W n$ tyD   | jddd u r@ Y n0 d S )Ng      ?r=   )r)   r   ZTerminateProcessr+   r*   r6   OSErrorr<   r>   r   r   r   	terminatex   s    
zPopen.terminatec                 C   s   |    d S r
   )r-   r>   r   r   r   close   s    zPopen.close)N)__name__
__module____qualname____doc__methodr3   r4   r<   r?   rA   killrB   r   r   r   r   r   &   s   5
)r   r   r7   r"   r   contextr   r   r    r   r   __all__r6   platformgetattrZWINEXEr#   lowerendswithZ
WINSERVICEr   r$   r!   r   objectr   r   r   r   r   <module>   s   
