
    h                        S SK r S SKrS SKrS SKrS SKrSSKJr  SSKJr  SSKJr  SSK	J
r
  S/rSr\R                  S	:H  =(       a
    \" \S
S5      r\R                   R#                  5       R%                  S5      r\R                  S	:X  a   S SK
JrJr  \
R,                  r " S S5      rg! \ a    S SKJrJr  S r Nf = f)    N   )context)spawn)	reduction)_winapiPopeni   win32frozenFzpythonservice.exe)CreateProcessGetExitCodeProcessc                 $    U R                  5         g N)Close)handles    BD:\TimeStamps\venv\Lib\site-packages\billiard/popen_spawn_win32.pyclose_thread_handler   $   s    LLN    c                   H    \ rS rSrSrSrSrS rS rS r	SS jr
S	 rS
 rSrg)r   (   z8
Start a subprocess to run the code of a process object
r   Nc                    S[         R                  S'   [        R                  " 5         [        R                  " UR
                  5      n[        R                  " S S5      u  p4[        R                  " US5      n[        R                  " [         R                  " 5       US9nSR                  S U 5       5      n[        R                  " USSS	9 n [        [        R                   " 5       US S S
SS S S 5	      u  pp[#        U	5        Xl        S U l        Xl        [-        U5      U l        [0        R2                  " U 5         [4        R6                  " X'5        [4        R6                  " X5        [0        R2                  " S 5         S S S 5        g !   [        R$                  " U5        e = f! [0        R2                  " S 5        f = f! , (       d  f       g = f)N1MULTIPROCESSING_FORKING_DISABLEr   )
parent_pidpipe_handle c              3   ,   #    U  H
  nS U-  v   M     g7f)z"%s"N ).0xs     r   	<genexpr>!Popen.__init__.<locals>.<genexpr>:   s     /3avz3s   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htr3   tids               r   __init__Popen.__init__/   sk   8;

45++-..{/@/@A	 #--dA6##GQ/$$		18:hh/3//WWS$-#0((*C$q$d$<  $B' H"DOLGDM &&t,1y3{5**40/ .-##G, **40/ .-s<   G4F9G?,F'+GF$$G'F??G
Gc                     U R                   b)   [        R                  " U R                   5        S U l         g g ! S U l         f = fr   )r7   r   r2   r:   s    r   closePopen.closeU   s:    ==$%##DMM2 $	 % !%s	    8 	Ac                 v    U [         R                  " 5       L d   e[        R                  " XR                  5      $ r   )r   get_spawning_popenr   	duplicater7   )r:   r   s     r   duplicate_for_childPopen.duplicate_for_child\   s.    w113333""6==99r   c                 z   U R                   c  Uc  [        R                  nO[        S[	        US-  S-   5      5      n[        R
                  " [	        U R                  5      U5      nU[        R                  :X  a6  [        U R                  5      nU[        :X  a  [        R                  * nX@l         U R                   $ )Nr   i  g      ?)r4   r   INFINITEmaxr6   WaitForSingleObjectr5   WAIT_OBJECT_0r   	TERMINATEsignalSIGTERM)r:   timeoutmsecsrescodes        r   wait
Popen.wait`   s    ??"((As7T>C#789--c$,,.?GCg+++)$,,79$"NN?D"&r   c                      U R                  SS9$ )Nr   rX   )r\   rH   s    r   poll
Popen.pollp   s    yyy##r   c                     U R                   c0   [        R                  " [        U R                  5      [
        5        g g ! [         a    U R                  SS9c  e  g f = f)Ng      ?r_   )r4   r   TerminateProcessr6   r5   rU   OSErrorr\   rH   s    r   	terminatePopen.terminates   sY    ??"((T\\):IF #  99S9)1 2s   .? AA)r5   r3   r4   r7   r   )__name__
__module____qualname____firstlineno____doc__methodr7   rE   rI   rN   r\   r`   re   __static_attributes__r   r   r   r   r   (   s2     FH$1L%: $r   )r/   r$   r*   rV   sys r   r   r   compatr   __all__rU   platformgetattrWINEXE
executablelowerendswith
WINSERVICEr   r   r2   r   ImportError_subprocessr   r   r   r   <module>r{      s    	 	   
    ) 	
,,'
!
Cgc8U&C^^!!#,,-@A
 <<7=%11Q Q  A	s   B+ +B?>B?