
    Sf	                     J    d dl Z d dlZd dlZddlmZ dgZ G d d          ZdS )    N   )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     E/var/www/html/env/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.wait0   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
   modulesr5   seed
_bootstrap_exitr+   )r   r   codeparent_rchild_wr5   s         r   r   zPopen._launchC   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   r7   )r   s    r   r7   zPopen.closeT   sG    =$%''' $$$$$	 %$s   + 	4r	   )__name__
__module____qualname__methodr+   r   r   r   r,   r'   r)   r3   r   r7   r   r   r   r   r      s        FH" " "   
    *     % % %"% % % % %r   )r   r
   r   commonr   __all__r   r   r   r   <module>rF      su    				 



       )K% K% K% K% K% K% K% K% K% K%r   