����JFIF���������
1#@!#!123s
D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
proc
/
self
/
root
/
lib64
/
python3.8
/
multiprocessing
/
__pycache__
/
Filename :
forkserver.cpython-38.opt-2.pyc
back
Copy
U ����e5d�0����������������������@���s����d�dl�Z�d�dlZd�dlZd�dlZd�dlZd�dlZd�dlZd�dlZd�dlZddl m Z �ddl mZ�ddlm Z �ddl mZ�ddl mZ�ddl mZ�d d ddgZd Ze�d�ZG�dd��de�Zddd�Zdd��Zdd��Zdd��Ze��ZejZejZejZejZdS�)�����N����)� connection)�process)� reduction)�resource_tracker)�spawn)�util�ensure_running�get_inherited_fds�connect_to_new_process�set_forkserver_preload�����qc�������������������@���sD���e�Zd�Zdd��Zdd��Zdd��Zdd��Zd d ��Zdd��Zd d��Z dS�)� ForkServerc�����������������C���s.���d�|�_�d�|�_d�|�_d�|�_t���|�_dg|�_d�S�)N�__main__)�_forkserver_address�_forkserver_alive_fd�_forkserver_pid�_inherited_fds� threadingZLock�_lock�_preload_modules��self��r����2/usr/lib64/python3.8/multiprocessing/forkserver.py�__init__"���s���� zForkServer.__init__c�������������� ���C���s���|�j���|�����W�5�Q�R�X�d�S��N)r����_stop_unlockedr���r���r���r����_stop*���s����zForkServer._stopc�����������������C���sV���|�j�d�krd�S�t�|�j��d�|�_t�|�j�d��d�|�_�t�|�j�sLt�|�j��d�|�_d�S�)Nr���) r����os�closer����waitpidr����is_abstract_socket_namespacer����unlinkr���r���r���r���r���/���s���� zForkServer._stop_unlockedc�����������������C���s&���t�dd��|�jD���std��||�_d�S�)Nc�����������������s���s���|�]}t�|�tkV��qd�S�r���)�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�r���)r���r���r���r���r���r ���D���s����zForkServer.get_inherited_fdsc�������������� ���C���s����|������t|�d�tkr td��t�tj���}|�|�j��t� ��\}}t� ��\}}|||�j t���g}||7�}zNz&t�||��||fW�W��4W��5�Q�R���S����t� |��t� |����Y�nX�W�5�t� |��t� |��X�W�5�Q�R�X�d�S�)N����ztoo many fds)r ����len�MAXFDS_TO_SEND� ValueError�socket�AF_UNIXZconnectr���r ����piper���r���Zgetfdr!���r���Zsendfds)r����fdsZclientZparent_r�child_w�child_rZparent_wZallfdsr���r���r���r���L���s(����� z!ForkServer.connect_to_new_processc��������������������s���|�j���~�t����|�jd�k r`t�|�jtj�\}}|sBW�5�Q�R���d�S�t�|�j��d�|�_ d�|�_d�|�_d}|�j r�ddh��t�d�}��fdd�|� ��D��}ni�}t�tj���}t�d�}|�|��t�|�s�t�|d��|����t���\}}ztzV|���|g} ||���||�j |f;�}t���} | gt����}|d |g7�}t�| || �}W�n���t�|����Y�nX�W�5�t�|��X�||�_ ||�_||�_W�5�Q�R�X�W�5�Q�R�X�d�S�) NzCfrom multiprocessing.forkserver import main; main(%d, %d, %r, **%r)� main_path�sys_path�ignorec��������������������s���i�|�]\}}|��kr||�qS�r���r���)r'����x�y�Zdesired_keysr���r���� <dictcomp>����s�������z-ForkServer.ensure_running.<locals>.<dictcomp>r1���i���z-c)r���r���r ���r���r ���r"����WNOHANGr!���r���r���r���r���Zget_preparation_data�itemsr0���r1���r���Zarbitrary_addressZbindr���r#����chmodZlistenr2����filenoZget_executableZ_args_from_interpreter_flagsZspawnv_passfds)r����pidZstatus�cmd�data�listenerZaddress�alive_rZalive_wZfds_to_passZexe�argsr���r;���r���r ���i���sN���� � zForkServer.ensure_runningN) �__name__� __module__�__qualname__r���r���r���r���r ���r���r ���r���r���r���r���r��� ���s���r���c�����������������C���s���|rdd|kr8|d�k r8dt����_zt�|��W�5�t����`X�|D�]&}zt|��W�q<�tk r`���Y�q<X�q<t����t � ��\}}t �|d��t �|d��dd��}tj |tjtji} dd��| ���D��} t�|��i�}tjtj|�d����}t������} |���t_| �|tj��| �|tj��| �|tj���znd d ��| ���D��}|�r"�qB�q"||k�rPt�||k�rBt �|d��zt �dt j�\}}W�n�t k �r����Y��qBY�nX�|d k�r��qB|�!|d��}|d�k �r0t �"|��r�t �#|��}n&t �$|��s�t%d�&||���t �'|�}zt(||��W�n�t)k �r"���Y�nX�t �*|��nt+�,d|����qf||k�r�|�-��d ���,}t.�/|t0d��}t1|�t0k�r�t2d�&t1|����|^}}}|�*���t �3��}|d k�r4d}zpz<|�*���| �*���||||g}|�5|�6����t7|||| �}W�n.�t8k �r ���t9j:t9�;�����t9j<�=���Y�nX�W�5�t �4|��X�nNzt(||��W�n�t)k �rX���Y�nX�|||<�t �*|��|D�]}t �*|���qpW�5�Q�R�X�W�n4�t>k �r��}�z|j?t?j@k�r���W�5�d�}~X�Y�nX��qW�5�Q�R�X�W�5�Q�R�X�d�S�)Nr���TFc������������������W���s���d�S�r���r���)Z_unusedr���r���r����sigchld_handler����s����zmain.<locals>.sigchld_handlerc�����������������S���s���i�|�]\}}|t���||��qS�r���)�signal)r'����sig�valr���r���r���r<�������s�����zmain.<locals>.<dictcomp>)r@���c�����������������S���s���g�|�]\}}|j��qS�r���)Zfileobj)r'����keyZeventsr���r���r���� <listcomp>����s�����zmain.<locals>.<listcomp>i������r���zChild {0:n} status is {1:n}z.forkserver: waitpid returned unexpected pid %dr���zToo many ({0:n}) fds to send)Ar���Zcurrent_processZ_inheritingr���Zimport_main_path� __import__�ImportErrorr���Z_close_stdinr ���r2����set_blockingrK����SIGCHLD�SIGINT�SIG_IGNr>���� set_wakeup_fdr0���r1���� selectorsZDefaultSelectorZgetsockname�_forkserverr����registerZ EVENT_READZselect� SystemExit�readr"���r=����ChildProcessError�pop�WIFSIGNALED�WTERMSIG� WIFEXITED�AssertionError�format�WEXITSTATUS�write_signed�BrokenPipeErrorr!����warnings�warnZacceptr���Zrecvfdsr.���r-����RuntimeError�fork�_exit�extend�values� _serve_one� Exception�sys� excepthook�exc_info�stderr�flush�OSError�errnoZECONNABORTED)Zlistener_fdrE���Zpreloadr6���r7����modnameZsig_rZsig_wrJ����handlersZold_handlersZ pid_to_fdrD���ZselectorZrfdsrA����stsr4���� returncode�sr3���r5����code� unused_fds�fd�er���r���r����main����s����� ���� � ��� � �� � r����c����������� ������C���sh���t��d��|���D�]\}}t���||��q|D�]}t�|��q,|^t_tj_ t_ t�|��}t� |�|�}|S�)NrP���)rK���rW���r>���r ���r!���rY���r���r���Z_resource_trackerZ_fdr����dupr���Z_main) r5���r3���r}���rx���rL���rM���r~���Zparent_sentinelr|���r���r���r���rn���1��s���� � rn���c�����������������C���sN���d}t�j}t|�|k�r@t�|�|t|���}|s6td��||7�}q t��|�d�S�)N�����zunexpected EOFr���)� SIGNED_STRUCT�sizer-���r ���r\����EOFErrorZunpack)r~���rC���Zlengthr{���r���r���r����read_signedH��s���� r����c�����������������C���s<���t��|�}|r8t�|�|�}|dkr*td��||d���}q d�S�)Nr���zshould not get here)r����Zpackr ����writeri���)r~����n�msg�nbytesr���r���r���re���R��s���� re���)NN) rv���r ���rX���rK���r0���Zstructrp���r���rg�����r���r����contextr���r���r���r����__all__r.���ZStructr�����objectr���r����rn���r����re���rY���r ���r ���r���r���r���r���r���r����<module>���s>���� � �