o
    h                     @   sv   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
 d
Z
G dd dejZdS )    N   )context)
popen_fork)	reduction)spawn)spawnv_passfdsPopenc                   @   s   e Zd Zdd Zdd ZdS )_DupFdc                 C   s
   || _ d S Nfdselfr    r   \/var/www/html/optinet_system/venv/lib/python3.10/site-packages/billiard/popen_spawn_posix.py__init__   s   
z_DupFd.__init__c                 C   s   | j S r
   r   )r   r   r   r   detach   s   z_DupFd.detachN)__name__
__module____qualname__r   r   r   r   r   r   r	      s    r	   c                       s4   e Zd ZdZeZ fddZdd Zdd Z  Z	S )r   r   c                    s   g | _ t | d S r
   )_fdssuperr   )r   process_obj	__class__r   r   r   #   s   zPopen.__init__c                 C   s   | j | |S r
   )r   appendr   r   r   r   duplicate_for_child'   s   zPopen.duplicate_for_childc              
   C   sp  dt jd< t  ddlm} | }| j| t	|j
}t }t|  zt|| t|| W td  ntd  w d  } } }}	z[t  \}}t  \}}	tj||d}
| j||g tt |
| j| _|| _tj|	ddd}||  W d    n1 sw   Y  W |||	fD ]}|d urt | qd S |||	fD ]}|d urt | qw )	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   r   r   r   _launch+   sJ   



zPopen._launch)
r   r   r   methodr	   DupFdr   r   rA   __classcell__r   r   r   r   r      s    )r+   r$   r'   r   r   r   r   compatr   __all__r	   r   r   r   r   r   <module>   s    