
     h(
                     X    d dl mZ d dlZd dlZd dlZddlmZ dgZ G d de          Z	dS )    )absolute_importN   )TERM_SIGNALPopenc                   P    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dS )r   forkNc                     t           j                                         t           j                                         d | _        |                     |           d S N)sysstdoutflushstderr
returncode_launch)selfprocess_objs     O/var/www/html/Sam_Eipo/venv/lib/python3.11/site-packages/billiard/popen_fork.py__init__zPopen.__init__   sI    

[!!!!!    c                     |S r
    )r   fds     r   duplicate_for_childzPopen.duplicate_for_child   s    	r   c                    | j         	 	 t          j        | j        |          \  }}n2# t          $ r%}|j        t
          j        k    rY d }~DY d }~d S d }~ww xY w|| j        k    r^t          j        |          rt          j        |           | _         n/t          j	        |          sJ t          j
        |          | _         | j         S r
   )r   oswaitpidpidOSErrorerrnoEINTRWIFSIGNALEDWTERMSIG	WIFEXITEDWEXITSTATUS)r   flagr   stses        r   pollz
Popen.poll   s    ?"
	!z$(D99HC        w%+--   44444  dh>#&& :'){3'7'7&7DOO<,,,,,&(nS&9&9DOs   ( 
AAAc                     | j         C|ddlm}  || j        g|          sd S |                     |dk    rt
          j        nd          S | j         S )Nr   )waitg        r   )r   
connectionr*   sentinelr(   r   WNOHANG)r   timeoutr*   s      r   r*   z
Popen.wait2   sg    ?"",,,,,,tT]OW55  4997c>>RZZqAAAr   c                     | j         v	 t          j        | j        t                     d S # t
          $ rG}t          |dd           t          j        k    r| 	                    d           Y d }~d S Y d }~d S d }~ww xY wd S )Nr   g?)r.   )
r   r   killr   r   r   getattrr   ESRCHr*   )r   excs     r   	terminatezPopen.terminate<   s    ?"+.....   3..%+==yyy--5 >=====555555 #"s   * 
A;6A66A;c                    d}t          j                    \  }}t          j                    | _        | j        dk    r~	 t          j        |           dt
          j        v rdd l}|                                 |	                                }t          j
        |           d S # t          j
        |           w xY wt          j        |           || _        d S )Nr   r   random)r   piper   r   closer   modulesr6   seed
_bootstrap_exitr,   )r   r   codeparent_rchild_wr6   s         r   r   zPopen._launchE   s    GII'7998q=="""s{**!MMMKKMMM"--//HW$DMMMs   AB! !B7c                 r    | j         /	 t          j        | j                    d | _         d S # d | _         w xY wd S r
   )r,   r   r8   )r   s    r   r8   zPopen.closeV   sG    =$%''' $$$$$	 %$s   + 	4r
   )__name__
__module____qualname__methodr,   r   r   r   r-   r(   r*   r4   r   r8   r   r   r   r   r      s        FH" " "   
    *     % % %"% % % % %r   )

__future__r   r   r   r   commonr   __all__objectr   r   r   r   <module>rI      s    & & & & & & 				 



       )K% K% K% K% K%F K% K% K% K% K%r   