
    F\h                         S SK r S SKrSSKJrJr  SSKJr  SSKJr  SSKJr  S/r	 " S S	\
5      r " S
 S\R                  5      rg)    N   )	reductionset_spawning_popen)
popen_fork)spawn)utilPopenc                        \ rS rSrS rS rSrg)_DupFd   c                     Xl         g Nfdselfr   s     8/usr/lib/python3.13/multiprocessing/popen_spawn_posix.py__init___DupFd.__init__   s        c                     U R                   $ r   r   )r   s    r   detach_DupFd.detach   s    wwr   r   N)__name__
__module____qualname____firstlineno__r   r   __static_attributes__ r   r   r   r      s    r   r   c                   <   ^  \ rS rSrSr\rU 4S jrS rS r	Sr
U =r$ )r	      r   c                 2   > / U l         [        TU ]	  U5        g r   )_fdssuperr   )r   process_obj	__class__s     r   r   Popen.__init__   s    	%r   c                 <    U R                   R                  U5        U$ r   )r#   appendr   s     r   duplicate_for_childPopen.duplicate_for_child"   s    			r   c                    SSK Jn  UR                  5       nU R                  R	                  U5        [
        R                  " UR                  5      n[        R                  " 5       n[        U 5         [        R                  " XE5        [        R                  " X5        [        S 5        S =n=n=p [        R                  " 5       u  pg[        R                  " 5       u  p[
        R                  " UUS9n
U R                  R!                  X/5        ["        R$                  " [
        R&                  " 5       XR                  5      U l        X`l        [-        U	SSS9 nUR/                  UR1                  5       5        S S S 5        / nXi4 H  nUc  M  UR	                  U5        M     ["        R2                  " U ["        R4                  U5      U l        X4 H  nUc  M  [        R8                  " U5        M      g ! [        S 5        f = f! , (       d  f       N= f! / nXi4 H  nUc  M  UR	                  U5        M     ["        R2                  " U ["        R4                  U5      U l        X4 H  nUc  M  [        R8                  " U5        M      f = f)Nr   )resource_tracker)
tracker_fdpipe_handlewbF)closefd) r-   getfdr#   r)   r   get_preparation_data_nameioBytesIOr   r   dumpospipeget_command_lineextendr   spawnv_passfdsget_executablepidsentinelopenwrite	getbufferFinalize	close_fds	finalizerclose)r   r%   r-   r.   	prep_datafpparent_rchild_wchild_rparent_wcmdffds_to_closer   s                 r   _launchPopen._launch&   s   &%++-
		$..{/@/@A	ZZ\4 	%NN9)NN;+t$266676W	! "	H "	G((J5<>CIIg/0**5+?+?+A+.		;DH$Mhe4' 5 L*> ''+ + "]]4NDN(>HHRL )+ t$ 54 L*> ''+ + "]]4NDN(>HHRL )s>   3,G6 2B)H  H;H 6H
HH 
J%AJ0J)r#   rF   r?   r@   )r   r   r   r   methodr   DupFdr   r*   rQ   r   __classcell__)r&   s   @r   r	   r	      s!    FE&"! "!r   )r6   r9   contextr   r   r2   r   r   r   __all__objectr   r	   r   r   r   <module>rY      s<    	 	 2   )V .!J .!r   