HEX
Server: Apache
System: Linux server2.voipitup.com.au 4.18.0-553.104.1.lve.el8.x86_64 #1 SMP Tue Feb 10 20:07:30 UTC 2026 x86_64
User: posscale (1027)
PHP: 8.2.29
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //opt/saltstack/salt/lib/python3.10/multiprocessing/__pycache__/popen_spawn_win32.cpython-310.pyc
o

�N�g��@s�ddlZddlZddlZddlZddlZddlmZmZmZddl	m
Z
ddl	mZdgZdZ
ejdko9eed	d
�Zej���d�Zdd
�Zeejej�Zdd�ZGdd�de�ZdS)�N�)�	reduction�get_spawning_popen�set_spawning_popen)�spawn)�util�Popeni�win32�frozenFzpythonservice.execCs ||kptj�|�tj�|�kS�N)�os�path�normcase)Zp1Zp2�r�G/opt/saltstack/salt/lib/python3.10/multiprocessing/popen_spawn_win32.py�_path_eqs rcGs|D]}t�|�qdSr)�_winapi�CloseHandle)Zhandles�handlerrr�_close_handless�rc@sJeZdZdZdZdd�Zdd�Zddd	�Zd
d�Zdd
�Z	e	Z
dd�ZdS)rz@
    Start a subprocess to run the code of a process object
    rcCslt�|j�}t�dd�\}}t�|d�}tjt�	�|d�}d�
dd�|D��}t��}trAt
|tj�rAtj}tj��}tj|d<nd}t|ddd	��b}	zt�||ddd
d|dd�	\}
}}}
t�|�Wn	t�|��||_d|_|
|_t|
�|_t�|t|jt|�f�|_t|�zt �!||	�t �!||	�Wtd�ntd�wWd�dS1s�wYdS)Nr)Z
parent_pidZpipe_handle� css�|]}d|VqdS)z"%s"Nr)�.0�xrrr�	<genexpr>9s�z!Popen.__init__.<locals>.<genexpr>�__PYVENV_LAUNCHER__�wbT)�closefdF)"rZget_preparation_data�_namerZ
CreatePipe�msvcrt�open_osfhandleZget_command_liner�getpid�joinZget_executable�WINENVr�sys�
executable�_base_executable�environ�copy�openZ
CreateProcessr�pid�
returncode�_handle�int�sentinelrZFinalizer�	finalizerrr�dump)�selfZprocess_objZ	prep_dataZrhandleZwhandleZwfd�cmdZ
python_exe�envZto_childZhpZhtr)�tidrrr�__init__,sH
�
�

�"�zPopen.__init__cCs|t�usJ�t�||j�Sr)rrZ	duplicater-)r0rrrr�duplicate_for_childaszPopen.duplicate_for_childNcCst|jdur7|dur
tj}ntdt|dd��}t�t|j�|�}|tjkr7t�|j�}|t	kr4t
j}||_|jS)Nri�g�?)r*rZINFINITE�maxr,ZWaitForSingleObjectr+Z
WAIT_OBJECT_0ZGetExitCodeProcess�	TERMINATE�signal�SIGTERM)r0�timeout�msecs�res�coderrr�waites

z
Popen.waitcCs|jdd�S)Nr�r:)r>�r0rrr�pollu�z
Popen.pollcCsN|jdur%zt�t|j�t�WdSty$|jdd�dur!�YdSwdS)Ng�?r?)r*rZTerminateProcessr,r+r7�OSErrorr>r@rrr�	terminatexs
���zPopen.terminatecCs|��dSr)r.r@rrr�close�rBzPopen.closer)�__name__�
__module__�__qualname__�__doc__�methodr4r5r>rArD�killrErrrrr&s5
)rrr8r#r�contextrrr�rr�__all__r7�platform�getattrZWINEXEr$�lower�endswithZ
WINSERVICErr%r"r�objectrrrrr�<module>s