
    ⾙h                         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dlmZ dgZ G d	 d
      Z	 G d dej                        Z
y)    N   )	reduction)context)
forkserver)
popen_fork)spawnPopenc                       e Zd Zd Zd Zy)_DupFdc                     || _         y N)ind)selfr   s     U/var/www/Befach/backend/env/lib/python3.12/site-packages/billiard/popen_forkserver.py__init__z_DupFd.__init__   s	        c                 D    t        j                         | j                     S r   )r   get_inherited_fdsr   )r   s    r   detachz_DupFd.detach   s    ++-dhh77r   N)__name__
__module____qualname__r   r    r   r   r   r      s    8r   r   c                   P     e Zd ZdZeZ fdZd Zd Ze	j                  fdZ xZS )r	   r   c                 2    g | _         t        | 	  |       y r   )_fdssuperr   )r   process_obj	__class__s     r   r   zPopen.__init__"   s    	%r   c                 h    | j                   j                  |       t        | j                         dz
  S )Nr   )r   appendlen)r   fds     r   duplicate_for_childzPopen.duplicate_for_child&   s'    		499~!!r   c                 z   t        j                  |j                        }t        j                         }t        j                  |        	 t        j                  ||       t        j                  ||       t        j                  d        t        j                  | j                        \  | _        }t        j                  |dd      5 }|j                  |j                                d d d        t        j                   | j                        | _        y # t        j                  d        w xY w# 1 sw Y   HxY w)NwbT)closefd)r   get_preparation_data_nameioBytesIOr   set_spawning_popenr   dumpr   connect_to_new_processr   sentinelopenwrite	getbufferread_unsignedpid)r   r   	prep_databufwfs         r   _launchzPopen._launch*   s    ..{/@/@A	jjl""4(	-NN9c*NN;,&&t,%<<TYYGqWWQd+ 	%qGGCMMO$	%++DMM: &&t,	% 	%s   
,D 
 D1D.1D:c                 F   | j                   cddlm} |t        j                  k(  rdnd } || j
                  g|      sy 	 t        j                  | j
                        | _         | j                   S | j                   S # t        t        f$ r d| _         Y | j                   S w xY w)Nr   )waitr      )

returncode
connectionr;   osWNOHANGr/   r   r3   OSErrorEOFError)r   flagr;   timeouts       r   pollz
Popen.poll9   s    ??"(2::-a4G1&",":":4=="I t X& &"%&s    $A< <B B )r   r   r   methodr   DupFdr   r$   r9   r?   r@   rE   __classcell__)r   s   @r   r	   r	      s*    FE&"; 

 r   )r*   r?    r   r   r   r   r   __all__r   r	   r   r   r   <module>rK      s=    	 	     )8 8&J &r   