<!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>

e f                 @   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 d d l m Z d d l m Z d d l m	 Z	 d g Z
 d Z e j d	 k o e e d
 d  Z e j j   j d  Z Gd d   d e  Z d S)    N   )context)spawn)	reduction)utilPopeni   win32frozenFzpythonservice.exec               @   s[   e  Z d  Z d Z d Z d d   Z d d   Z d d d	  Z d
 d   Z d d   Z	 d S)r   z@
    Start a subprocess to run the code of a process object
    r   c             C   s  t  j | j  } t j d  d  \ } } t j | d  } t  j d t j	   d |  } d j
 d d   | D  } t | d d d	  } yJ t j t  j   | d  d  d
 d d  d  d  	 \ } }	 }
 } t j |	  Wn t j |    Yn X|
 |  _ d  |  _ | |  _ t |  |  _ t j |  t j |  j f  t j |   z$ t j | |  t j | |  Wd  t j d   XWd  QXd  S)Nr   Z
parent_pidZpipe_handle c             s   s   |  ] } d  | Vq d S)z"%s"N ).0xr   r   F/opt/alt/python34/lib64/python3.4/multiprocessing/popen_spawn_win32.py	<genexpr>*   s    z!Popen.__init__.<locals>.<genexpr>wbclosefdTF)r   Zget_preparation_data_name_winapiZ
CreatePipemsvcrtZopen_osfhandleZget_command_lineosgetpidjoinopenZCreateProcessZget_executableZCloseHandlepid
returncode_handleintsentinelr   ZFinalizer   Zset_spawning_popenr   dump)selfZprocess_objZ	prep_dataZrhandleZwhandleZwfdcmdZto_childZhpZhtr   tidr   r   r   __init__!   s2    	'			zPopen.__init__c             C   s   t  j | |  j  S)N)r   Z	duplicater   )r   Zhandler   r   r   duplicate_for_childF   s    zPopen.duplicate_for_childNc             C   s   |  j  d  k r | d  k r' t j } n t d t | d d   } t j t |  j  |  } | t j k r t j |  j  } | t	 k r t
 j } n  | |  _  q n  |  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   waitJ   s    z
Popen.waitc             C   s   |  j  d d  S)Nr(   r   )r+   )r   r   r   r   pollZ   s    z
Popen.pollc             C   sf   |  j  d  k rb y t j t |  j  t  Wqb t k
 r^ |  j d d  d  k rZ   n  Yqb Xn  d  S)Nr(   g      ?)r   r   ZTerminateProcessr   r   r%   OSErrorr+   )r   r   r   r   	terminate]   s    zPopen.terminate)
__name__
__module____qualname____doc__methodr"   r#   r+   r,   r.   r   r   r   r   r      s   %)r   r   r&   sysr    r   r   r   r   __all__r%   platformgetattrZWINEXE
executablelowerendswithZ
WINSERVICEobjectr   r   r   r   r   <module>   s   	!