
    ⾙h                     v   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(  xr
  eed
d      Zej                   j#                         j%                  d      Zej                  d	k(  r	 d dl
mZmZ e
j,                  Z G d d      Zy# e$ r d dlmZmZ d ZY w xY w)    N   )context)spawn)	reduction)_winapiPopeni   win32frozenFzpythonservice.exe)CreateProcessGetExitCodeProcessc                 $    | j                          y N)Close)handles    V/var/www/Befach/backend/env/lib/python3.12/site-packages/billiard/popen_spawn_win32.pyclose_thread_handler   $   s    LLN    c                   >    e Zd ZdZdZdZd Zd Zd Zd
dZ	d Z
d	 Zy)r   z@
    Start a subprocess to run the code of a process object
    r   Nc                    dt         j                  d<   t        j                          t        j                  |j
                        }t        j                  d d      \  }}t        j                  |d      }t        j                  t        j                         |      }dj                  d |D              }t        j                  |dd	      5 }	 t        t        j                          |d d d
dd d d 	      \  }}	}
}t#        |	       |
| _        d | _        || _        t-        |      | _        t1        j2                  |        	 t5        j6                  ||       t5        j6                  ||       t1        j2                  d        	 d d d        y #  t        j$                  |        xY w# t1        j2                  d        w xY w# 1 sw Y   y xY w)N1MULTIPROCESSING_FORKING_DISABLEr   )
parent_pidpipe_handle c              3   &   K   | ]	  }d |z    yw)z"%s"N ).0xs     r   	<genexpr>z!Popen.__init__.<locals>.<genexpr>:   s     /avz/s   wbT)closefdF)osenvironr   _Django_old_layout_hack__saveget_preparation_data_namer   
CreatePipemsvcrtopen_osfhandleget_command_linegetpidjoinioopenr   get_executabler   CloseHandlepid
returncode_handleintsentinelr   set_spawning_popenr   dump)selfprocess_obj	prep_datarhandlewhandlewfdcmdto_childhphtr1   tids               r   __init__zPopen.__init__/   s   8;

45++-..{/@/@A	 #--dA6##GQ/$$		18:hh/3//WWS$- 	1#0((*C$q$d$< BS $B' DH"DODLGDM &&t,1y(3{H5**40/	1 	1##G, **40/	1 	1s<   G5F:G,F'-GF$$G'F>>GG
c                     | j                   (	 t        j                  | j                          d | _         y y # d | _         w xY wr   )r5   r   r0   r8   s    r   closezPopen.closeU   s:    ==$%##DMM2 $	 % !%s   6 	?c                 r    | t        j                         u sJ t        j                  || j                        S r   )r   get_spawning_popenr   	duplicater5   )r8   r   s     r   duplicate_for_childzPopen.duplicate_for_child\   s0    w113333""64==99r   c                 r   | j                   |t        j                  }nt        dt	        |dz  dz               }t        j
                  t	        | j                        |      }|t        j                  k(  r6t        | j                        }|t        k(  rt        j                   }|| _         | j                   S )Nr   i  g      ?)r2   r   INFINITEmaxr4   WaitForSingleObjectr3   WAIT_OBJECT_0r   	TERMINATEsignalSIGTERM)r8   timeoutmsecsrescodes        r   waitz
Popen.wait`   s    ??"((As7T>C#789--c$,,.?GCg+++)$,,79$"NN?D"&r   c                 &    | j                  d      S )Nr   rS   )rW   rE   s    r   pollz
Popen.pollp   s    yyy##r   c                     | j                   /	 t        j                  t        | j                        t
               y y # t        $ r | j                  d       Y y w xY w)Ng      ?rY   )r2   r   TerminateProcessr4   r3   rP   OSErrorrW   rE   s    r   	terminatezPopen.terminates   sY    ??"((T\\):IF #  99S9)1 2s   -= AAr   )__name__
__module____qualname____doc__methodr5   rC   rF   rJ   rW   rZ   r^   r   r   r   r   r   (   s2     FH$1L%: $r   )r-   r"   r(   rQ   sys r   r   r   compatr   __all__rP   platformgetattrWINEXE
executablelowerendswith
WINSERVICEr   r   r0   r   ImportError_subprocessr   r   r   r   <module>rq      s    	 	   
    ) 	
,,'
!
Cgc8U&C^^!!#,,-@A
 <<7=%11Q Q  A	s   B% %B87B8