
    F\h                         S SK r S SKrSSKJrJr  \R
                  (       d  \" S5      eSSK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_popenz,No support for sending fds between processes)
forkserver)
popen_fork)spawn)utilPopenc                        \ rS rSrS rS rSrg)_DupFd   c                     Xl         g Nind)selfr   s     7/usr/lib/python3.13/multiprocessing/popen_forkserver.py__init___DupFd.__init__   s        c                 F    [         R                  " 5       U R                     $ r   )r   get_inherited_fdsr   )r   s    r   detach_DupFd.detach   s    ++-dhh77r   r   N)__name__
__module____qualname____firstlineno__r   r   __static_attributes__ r   r   r   r      s    8r   r   c                   \   ^  \ rS rSrSr\rU 4S jrS rS r	\
R                  4S j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                 h    U R                   R                  U5        [        U R                   5      S-
  $ )Nr   )r$   appendlen)r   fds     r   duplicate_for_childPopen.duplicate_for_child%   s'    		499~!!r   c                    [         R                  " UR                  5      n[        R                  " 5       n[        U 5         [        R                  " X#5        [        R                  " X5        [        S 5        [        R                  " U R                  5      u  U l        n[        R                  " U5      n[        R                  " U [        R                   XPR                  45      U l        [%        USSS9 nUR'                  UR)                  5       5        S S S 5        [        R*                  " U R                  5      U l        g ! [        S 5        f = f! , (       d  f       ND= f)NwbT)closefd)r   get_preparation_data_nameioBytesIOr   r   dumpr   connect_to_new_processr$   sentinelosdupr	   Finalize	close_fds	finalizeropenwrite	getbufferread_signedpid)r   r&   	prep_databufw	_parent_wfs          r   _launchPopen._launch)   s    ..{/@/@A	jjl4 	%NN9*NN;,t$%<<TYYGq FF1I	tT^^(1=='AC!T4(AGGCMMO$ )))$--8 t$ )(s   ,E 8 EE
E$c                 X   U R                   cj  SSKJn  U[        R                  :X  a  SOS nU" U R
                  /U5      (       d  g  [        R                  " U R
                  5      U l         U R                   $ U R                   $ ! [        [        4 a    SU l          U R                   $ f = f)Nr   )wait   )

returncodemultiprocessing.connectionrK   r9   WNOHANGr8   r   rA   OSErrorEOFError)r   flagrK   timeouts       r   poll
Popen.poll=   s    ??"72::-a4G11&","8"8"G t X& & #&&s   %B B)(B))r$   r=   rB   rM   r8   )r   r   r   r   methodr   DupFdr   r-   rH   r9   rO   rT   r   __classcell__)r'   s   @r   r
   r
      s/    FE&"9( 

  r   )r4   r9   contextr   r   HAVE_SEND_HANDLEImportError r   r   r   r	   __all__objectr   r
   r    r   r   <module>r_      sV    	 	 2!!
D
EE     )8V 8-J -r   