<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>

]                  @   sd  d  d l  Z  d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z 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 d l m Z d	 d
 d d g Z d Z e j d  Z Gd d   d e  Z d d d d  Z d d   Z d d   Z d d   Z e   Z e j Z e j Z e j Z e j Z d S)    N   )
connection)process)	reduction)semaphore_tracker)spawn)utilensure_runningget_inherited_fdsconnect_to_new_processset_forkserver_preload   Qc               @   sL   e  Z d  Z d d   Z d d   Z d d   Z d d   Z d	 d
   Z d S)
ForkServerc             C   s:   d  |  _  d  |  _ d  |  _ t j   |  _ d g |  _ d  S)N__main__)_forkserver_address_forkserver_alive_fd_inherited_fds	threadingLock_lock_preload_modules)self r   //opt/alt/python35/lib64/python3.5/forkserver.py__init__!   s
    			zForkServer.__init__c             C   s5   t  d d   |  j D  s( t d   | |  _ d  S)Nc             s   s!   |  ] } t  |  t k Vq d  S)N)typestr).0modr   r   r   	<genexpr>*   s    z4ForkServer.set_forkserver_preload.<locals>.<genexpr>z&module_names must be a list of strings)allr   	TypeError)r   Zmodules_namesr   r   r   r   (   s    z!ForkServer.set_forkserver_preloadc             C   s   |  j  S)N)r   )r   r   r   r   r
   .   s    zForkServer.get_inherited_fdsc             C   s  |  j    t |  d t k r, t d   t j t j   } | j |  j  t j	   \ } } t j	   \ } } | | |  j
 t j   g } | | 7} zJ y t j | |  | | f SWn% t j |  t j |    Yn XWd  t j |  t j |  XWd  QRXd  S)N   ztoo many fds)r	   lenMAXFDS_TO_SEND
ValueErrorsocketAF_UNIXconnectr   ospiper   r   Zgetfdr   sendfdsclose)r   fdsclientZparent_rchild_wchild_rZparent_wZallfdsr   r   r   r   6   s&    

z!ForkServer.connect_to_new_processc                s  |  j  t j   |  j d  k	 r' d  Sd d } |  j r} d d h   t j d  } t   f d d   | j   D  } n i  } t	 j	 t	 j
  
} t j d  } | j |  t j | d	  | j   t j   \ } } z yy | j   | g } | | j   | |  j | f ;} t j   } | g t j   }	 |	 d
 | g 7}	 t j | |	 |  }
 Wn t j |    Yn XWd  t j |  X| |  _ | |  _ Wd  QRXWd  QRXd  S)Nz-from multiprocessing.forkserver import main; zmain(%d, %d, %r, **%r)	main_pathsys_pathignorec             3   s-   |  ]# \ } } |   k r | | f Vq d  S)Nr   )r   xy)desired_keysr   r   r    e   s    	z,ForkServer.ensure_running.<locals>.<genexpr>r(   i  z-c)r   r   r	   r   r   r   Zget_preparation_datadictitemsr'   r(   r   arbitrary_addressbindr*   chmodlistenr+   filenoZget_executabler   _args_from_interpreter_flagsspawnv_passfdsr-   r   )r   cmddatalisteneraddressalive_rZalive_wZfds_to_passZexeargspidr   )r7   r   r	   S   s>    

	(

	zForkServer.ensure_runningN)__name__
__module____qualname__r   r   r
   r   r	   r   r   r   r   r      s
   r   c          4   C   sH  | r d | k rN | d  k	 rN d t  j   _ z t j |  Wd  t  j   ` Xx1 | D]) } y t |  WqU t k
 r} YqU XqU Wt j   t	 j
 t	 j t	 j t	 j i } d d   | j   D } t j t j d |  f} t j   P}	 | j   t _ |	 j | t j  |	 j | t j  xy x$ d d   |	 j   D }
 |
 r+Pq+W| |
 k rat  | j   d  } d	 } t j   d k rzP y t | | | |  Wn2 t k
 rt j  t j!     t j" j#   Yn XWd  t j$ |  XWd  QRXWq%t% k
 r1} z | j& t& j' k r  WYd  d  } ~ Xq%Xq%WWd  QRXWd  QRXd  S)
Nr   Tc             S   s+   i  |  ]! \ } } t  j  | |  |  q Sr   )signal)r   sigvalr   r   r   
<dictcomp>   s   	zmain.<locals>.<dictcomp>r>   c             S   s   g  |  ] \ } } | j   q Sr   )fileobj)r   keyeventsr   r   r   
<listcomp>   s   	 zmain.<locals>.<listcomp>r   r   )(r   current_processZ_inheritingr   Zimport_main_path
__import__ImportErrorr   _close_stdinrK   SIGCHLDSIG_IGNSIGINTSIG_DFLr9   r'   r(   	selectorsDefaultSelectorgetsockname_forkserverr   register
EVENT_READselect
SystemExitacceptr*   fork
_serve_one	Exceptionsys
excepthookexc_infostderrflush_exitOSErrorerrnoZECONNABORTED)Zlistener_fdrE   Zpreloadr2   r3   modnamehandlersZold_handlersrC   selectorZrfdsscodeer   r   r   main   sR    	
	ru   c             C   s   | j    t j  |  x* | j   D] \ } } t j | |  q$ Wt j |  t d  } |  j    | ^ } } t _ }	 t _	 |	 t
 j _ t | t j    d t j k r d d  l }
 |
 j   t j |  } t | |  d  S)Nr   randomr   )r-   r*   r9   rK   r   recvfdsr%   r^   r   r   r   Z_semaphore_trackerZ_fdwrite_unsignedgetpidrg   modulesrv   seedr   _main)rr   rC   rE   rp   rL   rM   r.   r1   r0   Zstfdrv   rs   r   r   r   re      s    


re   c             C   sq   d } t  j } xN t |  | k  r_ t j |  | t |   } | sR t d   | | 7} q Wt  j |  d S)N    zunexpected EOFr   )UNSIGNED_STRUCTsizer$   r*   readEOFErrorunpack)fdrB   lengthrr   r   r   r   read_unsigned   s    	r   c             C   sZ   t  j |  } xD | rU t j |  |  } | d k rB t d   | | d   } q Wd  S)Nr   zshould not get here)r~   packr*   writeRuntimeError)r   nmsgnbytesr   r   r   rx      s    	rx   )rn   r*   r[   rK   r'   structrg   r    r   r   r   r   r   r   __all__r%   Structr~   objectr   ru   re   r   rx   r^   r	   r
   r   r   r   r   r   r   <module>   s6   		h=!
				