
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
U
    ¡ê,aí  ã                   @   sp   d dl Z d dlZddlmZmZ ddlmZ ddlmZ ddlmZ dgZ	G dd	„ d	e
ƒZG d
d„ dejƒZdS )é    Né   )Ú	reductionÚset_spawning_popen)Ú
popen_fork)Úspawn)ÚutilÚPopenc                   @   s   e Zd Zdd„ Zdd„ ZdS )Ú_DupFdc                 C   s
   || _ d S ©N©Úfd©Úselfr   © r   úF/opt/alt/python38/lib64/python3.8/multiprocessing/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   sX  ddl m} | ¡ }| j |¡ t |j¡}t 	¡ }t
| ƒ zt ||¡ t ||¡ W 5 t
d ƒ X d  } } }}	z~t ¡ \}}t ¡ \}}	tj||d�}| j ||g¡ t t ¡ || j¡| _|| _t|	ddd��}| | ¡ ¡ W 5 Q R X W 5 g }
||	fD ]}|d k	�r |
 |¡ �q t | tj|
¡| _||fD ]}|d k	�r6t |¡ �q6X d S )Nr   )Úresource_tracker)Ú
tracker_fdZpipe_handleÚwbF)Úclosefd)Ú r   Zgetfdr   r   r   Zget_preparation_dataÚ_nameÚioÚBytesIOr   r   Údumpr   ZFinalizeZ	close_fdsÚ	finalizerÚosÚcloseÚpipeZget_command_lineÚextendZspawnv_passfdsZget_executableÚpidÚsentinelÚopenÚwriteÚ	getbuffer)r   r   r   r   Z	prep_dataÚfpZparent_rZchild_wZchild_rZparent_wZfds_to_closer   ÚcmdÚfr   r   r   Ú_launch&   sB    
ÿ
 ÿ

zPopen._launch)
r   r   r   Úmethodr	   ZDupFdr   r   r3   Ú__classcell__r   r   r   r   r      s
   )r#   r'   Úcontextr   r   r!   r   r   r   Ú__all__Úobjectr	   r   r   r   r   r   Ú<module>   s   
