
    ⾙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   )context)
popen_fork)	reduction)spawn)spawnv_passfdsPopenc                       e Zd Zd Zd Zy)_DupFdc                     || _         y Nfdselfr   s     V/var/www/Befach/backend/env/lib/python3.12/site-packages/billiard/popen_spawn_posix.py__init__z_DupFd.__init__   s	        c                     | j                   S r   r   )r   s    r   detachz_DupFd.detach   s    wwr   N)__name__
__module____qualname__r   r    r   r   r   r      s    r   r   c                   2     e Zd ZdZeZ fdZd Z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                 <    | j                   j                  |       |S r   )r   appendr   s     r   duplicate_for_childzPopen.duplicate_for_child'   s    			r   c                 f   dt         j                  d<   t        j                          ddlm} |j                         }| j                  j                  |       t        j                  |j                        }t        j                         }t        j                  |        	 t        j                   ||       t        j                   ||       t        j                  d        d x}x}x}}		 t        j"                         \  }}t        j"                         \  }}	t        j$                  ||      }
| j                  j'                  ||g       t)        t        j*                         |
| j                        | _        || _        t        j0                  |	dd      5 }|j3                  |j5                                d d d        |||	fD ]  }|t        j6                  |        y # t        j                  d        w xY w# 1 sw Y   FxY w# |||	fD ]  }|t        j6                  |        w xY w)	N1MULTIPROCESSING_FORKING_DISABLEr   )semaphore_tracker)
tracker_fdpipe_handlewbF)closefd)osenvironr   _Django_old_layout_hack__save r'   getfdr   r"   get_preparation_data_nameioBytesIOr   set_spawning_popenr   dumppipeget_command_lineextendr   get_executablepidsentinelopenwritegetvalueclose)r   r   r'   r(   	prep_datafpparent_rchild_wchild_rparent_wcmdfr   s                r   _launchzPopen._launch+   s   8;

45++-'&,,.
		$..{/@/@A	ZZ\""4(	-NN9b)NN;+&&t,266676Wx	! "	Hg "	GX((J5<>CIIgw/0%$$&TYYDH %DM47 '1&' 2>HHRL 3! &&t,' ' 2>HHRL 3s7   ",G& ,B/H  H ;H &G= H	H H0H0)
r   r   r   methodr   DupFdr   r#   rI   __classcell__)r    s   @r   r	   r	      s    FE&!r   )r3   r,   r/   r   r   r   r   compatr   __all__r   r	   r   r   r   <module>rO      s=    	 	     ") +!J +!r   