
    ⾙h	                     B    d dl Z d dlZd dlZddlmZ dgZ G d d      Zy)    N   )TERM_SIGNALPopenc                   X    e Zd ZdZdZd Zd Zej                  fdZ	d
dZ
d Zd Zd	 Zy)r   forkNc                     t         j                  j                          t         j                  j                          d | _        | j                  |       y N)sysstdoutflushstderr
returncode_launch)selfprocess_objs     O/var/www/Befach/backend/env/lib/python3.12/site-packages/billiard/popen_fork.py__init__zPopen.__init__   s5    



[!    c                     |S r	    )r   fds     r   duplicate_for_childzPopen.duplicate_for_child   s    	r   c                    | j                   	 	 t        j                  | j                  |      \  }}	 || j                  k(  rmt        j                  |      r't        j                  |       | _         | j                   S t        j                  |      sJ t        j                  |      | _         | j                   S # t        $ r,}|j
                  t
        j                  k(  rY d }~Y d }~y d }~ww xY wr	   )r   oswaitpidpidOSErrorerrnoEINTRWIFSIGNALEDWTERMSIG	WIFEXITEDWEXITSTATUS)r   flagr   stses        r   pollz
Popen.poll   s    ??"	!zz$((D9HC dhh>>#&'){{3'7&7DO  <<,,,&(nnS&9DO   ww%++-    s   #B; ;	C0C++C0c                     | j                   G|ddlm}  || j                  g|      sy | j	                  |dk(  rt
        j                        S d      S | j                   S )Nr   )waitg        r   )r   
connectionr)   sentinelr'   r   WNOHANG)r   timeoutr)   s      r   r)   z
Popen.wait0   sS    ??"",T]]OW5997c>RZZAAqAAr   c                     | j                   &	 t        j                  | j                  t               y y # t
        $ r@}t        |dd       t        j                  k7  r| j                  d       Y d }~y Y d }~y d }~ww xY w)Nr   g?)r-   )
r   r   killr   r   r   getattrr   ESRCHr)   )r   excs     r   	terminatezPopen.terminate:   sm    ??"+. #  3.%++=yyy-5 6 >s   $4 	A=1A88A=c                    d}t        j                         \  }}t        j                         | _        | j                  dk(  rb	 t        j                  |       dt
        j                  v rdd l}|j                          |j                         }t        j                  |       y t        j                  |       || _        y # t        j                  |       w xY w)Nr   r   random)r   piper   r   closer
   modulesr5   seed
_bootstrap_exitr+   )r   r   codeparent_rchild_wr5   s         r   r   zPopen._launchC   s    GGI'77988q="s{{*!KKM"--/HHW$DM s   AC Cc                     | j                   (	 t        j                  | j                          d | _         y y # d | _         w xY wr	   )r+   r   r7   )r   s    r   r7   zPopen.closeT   s8    ==$%' $	 % !%s   6 	?r	   )__name__
__module____qualname__methodr+   r   r   r   r,   r'   r)   r3   r   r7   r   r   r   r   r      s8    FH" 

 *%"%r   )r   r
   r   commonr   __all__r   r   r   r   <module>rF      s$    	 
  )K% K%r   