
    h                         S SK r S SKrSSKJr  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)context)
forkserver)
popen_fork)spawnPopenc                        \ rS rSrS rS rSrg)_DupFd   c                     Xl         g Nind)selfr   s     AD:\TimeStamps\venv\Lib\site-packages\billiard/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[
        R                  " U 5         [        R                  " X#5        [        R                  " X5        [
        R                  " S 5        [        R                  " U R                  5      u  U l        n[        R                  " USSS9 nUR                  UR                  5       5        S S S 5        [        R                   " U R                  5      U l        g ! [
        R                  " S 5        f = f! , (       d  f       NO= f)NwbT)closefd)r   get_preparation_data_nameioBytesIOr   set_spawning_popenr   dumpr   connect_to_new_processr#   sentinelopenwrite	getbufferread_unsignedpid)r   r%   	prep_databufwfs         r   _launchPopen._launch*   s    ..{/@/@A	jjl""4(	-NN9*NN;,&&t,%<<TYYGqWWQd+qGGCMMO$ ,++DMM: &&t, ,+s   ,D  D6D36
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   )waitr      )

returncode
connectionrE   osWNOHANGr8   r   r<   OSErrorEOFError)r   flagrE   timeouts       r   poll
Popen.poll9   s    ??"(2::-a4G11&",":":4=="I t X& &"%&s   %B B)(B))r#   r=   rG   r8   )r   r   r   r   methodr   DupFdr   r,   rB   rI   rJ   rO   r   __classcell__)r&   s   @r   r	   r	      s/    FE&"; 

  r   )r3   rI    r   r   r   r   r   __all__r   r	   r   r   r   <module>rV      s=    	 	     )8 8&J &r   