OwlCyberSecurity - MANAGER
Edit File: unix_events.cpython-37.opt-2.pyc
B ����YI~d؟������������������@���s���d�dl�Z�d�dlZd�dlZd�dlZd�dlZd�dlZd�dlZd�dlZd�dlZd�dl Z d�dl Z ddlmZ�ddlm Z �ddlmZ�ddlmZ�ddlmZ�ddlmZ�dd lmZ�dd lmZ�ddlmZ�ddlmZ�d Zejdkr�ed��dd��ZG�dd��dej�ZG�dd��dej�ZG�dd��dejej �Z!G�dd��de j"�Z#G�dd��d�Z$G�dd��de$�Z%G�dd��de%�Z&G�d d!��d!e%�Z'G�d"d#��d#ej(�Z)eZ*e)Z+dS�)$�����N����)�base_events)�base_subprocess)� constants)� coroutines)�events)�futures)�selector_events)�tasks)� transports)�logger)�SelectorEventLoop�AbstractChildWatcher�SafeChildWatcher�FastChildWatcher�DefaultEventLoopPolicy�win32z+Signals are not really supported on Windowsc�������������C���s���d�S�)N��)�signum�framer���r����8/opt/alt/python37/lib64/python3.7/asyncio/unix_events.py�_sighandler_noop'���s����r���c�������������������s����e�Zd�Zd(��fdd� Z��fdd�Zdd��Zdd ��Zd d��Zdd ��Zdd��Z d)dd�Z d*dd�Zd+dd�Zdd��Z d,ddddd�dd�Zd-dddddd�dd�Zd d!��Zd"d#��Zd$d%��Zd&d'��Z���ZS�).�_UnixSelectorEventLoopNc����������������s���t����|��i�|�_d�S�)N)�super�__init__�_signal_handlers)�self�selector)� __class__r���r���r���2���s����z_UnixSelectorEventLoop.__init__c����������������s^���t�������t���s2xFt|�j�D�]}|��|��qW�n(|�jrZtjd|��d�t |�d��|�j� ���d�S�)NzClosing the loop z@ on interpreter shutdown stage, skipping signal handlers removal)�source)r����close�sys� is_finalizing�listr����remove_signal_handler�warnings�warn�ResourceWarning�clear)r����sig)r���r���r���r ���6���s���� z_UnixSelectorEventLoop.closec�������������C���s"���x|D�]}|sq|���|��qW�d�S�)N)�_handle_signal)r����datar���r���r���r����_process_self_dataD���s���� z)_UnixSelectorEventLoop._process_self_datac���������� ���G���sL��t��|�st��|�rtd��|��|��|�����yt�|�j� ����W�n2�t tfk rt�}�ztt |���W�d�d�}~X�Y�nX�t�|||�d��}||�j|<�yt�|t��t�|d��W�n��tk �rF�}�zz|�j|=�|�j�syt�d��W�n4�t tfk �r�}�zt�d|��W�d�d�}~X�Y�nX�|jtjk�r4td|��d���n��W�d�d�}~X�Y�nX�d�S�)Nz3coroutines cannot be used with add_signal_handler()F���zset_wakeup_fd(-1) failed: %szsig z cannot be caught)r���ZiscoroutineZiscoroutinefunction� TypeError� _check_signalZ _check_closed�signal� set_wakeup_fdZ_csock�fileno� ValueError�OSError�RuntimeError�strr���ZHandler���r����siginterruptr����info�errno�EINVAL)r���r)����callback�args�exc�handleZnexcr���r���r����add_signal_handlerK���s0���� z)_UnixSelectorEventLoop.add_signal_handlerc�������������C���s8���|�j��|�}|d�krd�S�|jr*|��|��n |��|��d�S�)N)r����getZ _cancelledr$���Z_add_callback_signalsafe)r���r)���r>���r���r���r���r*���x���s����z%_UnixSelectorEventLoop._handle_signalc���������� ���C���s����|���|��y|�j|=�W�n�tk r*���dS�X�|tjkr>tj}ntj}yt�||��W�nB�tk r��}�z$|jtj kr�t d|��d���n��W�d�d�}~X�Y�nX�|�js�yt�d��W�n2�ttfk r��}�zt �d|��W�d�d�}~X�Y�nX�dS�)NFzsig z cannot be caughtr-���zset_wakeup_fd(-1) failed: %sT)r/���r����KeyErrorr0����SIGINT�default_int_handler�SIG_DFLr4���r9���r:���r5���r1���r3���r���r8���)r���r)���Zhandlerr=���r���r���r���r$�������s(���� z,_UnixSelectorEventLoop.remove_signal_handlerc�������������C���sL���t�|t�std|����d|��kr.tjk�sHn�td|��dtj��d���d�S�)Nzsig must be an int, not r���zsig z out of range(1, �))� isinstance�intr.���r0����NSIGr3���)r���r)���r���r���r���r/�������s���� z$_UnixSelectorEventLoop._check_signalc�������������C���s���t�|�||||�S�)N)�_UnixReadPipeTransport)r����pipe�protocol�waiter�extrar���r���r����_make_read_pipe_transport����s����z0_UnixSelectorEventLoop._make_read_pipe_transportc�������������C���s���t�|�||||�S�)N)�_UnixWritePipeTransport)r���rJ���rK���rL���rM���r���r���r����_make_write_pipe_transport����s����z1_UnixSelectorEventLoop._make_write_pipe_transportc ������� ��� �������s����t������} |����}t|�|||||||f||d�| ��}| �|���|�j|��y|I�d�H��W�n,�tk r����|����|� ��I�d�H����Y�nX�W�d�Q�R�X�|S�)N)rL���rM���) r����get_child_watcher� create_future�_UnixSubprocessTransport�add_child_handlerZget_pid�_child_watcher_callback� Exceptionr ���Z_wait) r���rK���r<����shell�stdin�stdout�stderr�bufsizerM����kwargs�watcherrL����transpr���r���r����_make_subprocess_transport����s���� z1_UnixSelectorEventLoop._make_subprocess_transportc�������������C���s���|���|j|��d�S�)N)Zcall_soon_threadsafeZ_process_exited)r����pid� returncoder^���r���r���r���rU�������s����z._UnixSelectorEventLoop._child_watcher_callback)�ssl�sock�server_hostname�ssl_handshake_timeoutc������ ����������s ��|r|d�kr6t�d��n |d�k r&t�d��|d�k r6t�d��|d�k r�|d�k rNt�d��t�|�}t�tjtjd�}y |�d��|��||�I�d�H��W�q����|������Y�q�X�n@|d�kr�t�d��|j tjks�|j tjkr�t�d|����|�d��|�j|||||d �I�d�H�\}}||fS�) Nz/you have to pass server_hostname when using sslz+server_hostname is only meaningful with sslz1ssl_handshake_timeout is only meaningful with sslz3path and sock can not be specified at the same timer���Fzno path and sock were specifiedz.A UNIX Domain Stream Socket was expected, got )re���)r3����os�fspath�socket�AF_UNIX�SOCK_STREAM�setblockingZsock_connectr ����family�typeZ_create_connection_transport) r����protocol_factory�pathrb���rc���rd���re���� transportrK���r���r���r����create_unix_connection����s@���� z-_UnixSelectorEventLoop.create_unix_connection�d���T)rc����backlogrb���re���� start_servingc��������� �������s���t�|t�rtd��|d�k r&|s&td��|d�k �rH|d�k r@td��t�|�}t�tjtj�}|d�dkr�y t � t� |�j�r�t�|��W�nB�t k r����Y�n0�tk r��}�zt�d||��W�d�d�}~X�Y�nX�y|�|��W�nl�tk �r0�} �z8|����| jtjk�rd|�d�} ttj| �d��n��W�d�d�} ~ X�Y�n���|������Y�nX�n<|d�k�rZtd ��|jtjk�sv|jtjk�r�td |����|�d��t�|�|g||||�}|�r�|����tjd|�d�I�d�H��|S�) Nz*ssl argument must be an SSLContext or Nonez1ssl_handshake_timeout is only meaningful with sslz3path and sock can not be specified at the same timer���)r�����z2Unable to check or remove stale UNIX socket %r: %rzAddress z is already in usez-path was not specified, and no sock specifiedz.A UNIX Domain Stream Socket was expected, got F)�loop)rF����boolr.���r3���rf���rg���rh���ri���rj����stat�S_ISSOCK�st_mode�remove�FileNotFoundErrorr4���r����errorZbindr ���r9���Z EADDRINUSErl���rm���rk���r���ZServerZ_start_servingr ���Zsleep)r���rn���ro���rc���rs���rb���re���rt����errr=����msgZserverr���r���r����create_unix_server����sZ���� z)_UnixSelectorEventLoop.create_unix_serverc���������� �������s����y t�j�W�n,�tk r6�}�zt�d��W�d�d�}~X�Y�nX�y|���}W�n2�ttjfk rv�}�zt�d��W�d�d�}~X�Y�nX�yt��|�j }W�n,�t k r��}�zt�d��W�d�d�}~X�Y�nX�|r�|n|} | s�dS�|����} |��| d�||||| d��| I�d�H�S�)Nzos.sendfile() is not availableznot a regular filer���) rf����sendfile�AttributeErrorr����SendfileNotAvailableErrorr2����io�UnsupportedOperation�fstat�st_sizer4���rR����_sock_sendfile_native_impl)r���rc����file�offset�countr=���r2���r~���Zfsize� blocksize�futr���r���r����_sock_sendfile_native>��s(���� z,_UnixSelectorEventLoop._sock_sendfile_nativec �������������C���s��|����} |d�k r|��|��|���r4|��|||��d�S�|rd||�}|dkrd|��|||��|�|��d�S�yt�| |||�} W��n*�ttfk r����|d�kr�|�� ||��|�� | |�j|| ||||||� �Y��nH�tk �rj�}�z�|d�k �r|j t jk�rt|�tk �rtdt j�}||_|}|dk�rBt�d�} |��|||��|�| ��n|��|||��|�|��W�d�d�}~X�Y�n��tk �r��}�z|��|||��|�|��W�d�d�}~X�Y�njX�| dk�r�|��|||��|�|��nD|| 7�}|| 7�}|d�k�r�|�� ||��|�� | |�j|| ||||||� �d�S�)Nr���zsocket is not connectedzos.sendfile call failed)r2���� remove_writer� cancelled�_sock_sendfile_update_fileposZ set_resultrf���r�����BlockingIOError�InterruptedError�_sock_add_cancellation_callbackZ add_writerr����r4���r9���ZENOTCONNrm����ConnectionError� __cause__r���r����Z set_exceptionrV���)r���r����Z registered_fdrc���r2���r����r����r����� total_sent�fdZsentr=����new_excr~���r���r���r���r����U��s`���� z1_UnixSelectorEventLoop._sock_sendfile_native_implc�������������C���s���|dkrt��||t�j��d�S�)Nr���)rf����lseek�SEEK_SET)r���r2���r����r����r���r���r���r�������s����z4_UnixSelectorEventLoop._sock_sendfile_update_fileposc����������������s������fdd�}|��|��d�S�)Nc����������������s&���|�����r"����}|dkr"���|��d�S�)Nr-���)r����r2���r����)r����r����)r���rc���r���r����cb���s����zB_UnixSelectorEventLoop._sock_add_cancellation_callback.<locals>.cb)Zadd_done_callback)r���r����rc���r����r���)r���rc���r���r�������s����z6_UnixSelectorEventLoop._sock_add_cancellation_callback)N)NN)NN)N)N)N)�__name__� __module__�__qualname__r���r ���r,���r?���r*���r$���r/���rN���rP���r_���rU���rq���r����r����r����r����r����� __classcell__r���r���)r���r���r���,���s2���- � � *?Dr���c�������������������s����e�Zd�ZdZd��fdd� Zdd��Zdd��Zd d ��Zdd��Zd d��Z dd��Z dd��Zdd��Zdd��Z ddd�Zdd��Zdd��Z���ZS�) rI���i���Nc����������������s����t����|��||�jd<�||�_||�_|���|�_||�_d|�_d|�_ t �|�j�j}t �|�s�t �|�s�t �|�s�d�|�_d�|�_d�|�_td��t �|�jd��|�j�|�jj|���|�j�|�jj|�j|�j��|d�k r�|�j�tj|d���d�S�)NrJ���Fz)Pipe transport is for pipes/sockets only.)r���r����_extra�_loop�_piper2����_fileno� _protocol�_closing�_pausedrf���r����rz���rx����S_ISFIFOry����S_ISCHRr3����set_blocking� call_soon�connection_made�_add_reader�_read_readyr����_set_result_unless_cancelled)r���rv���rJ���rK���rL���rM����mode)r���r���r���r������s.���� z_UnixReadPipeTransport.__init__c�������������C���s����|�j�jg}|�jd�kr |�d��n|�jr0|�d��|�d|�j�����t|�jdd��}|�jd�k r�|d�k r�t� ||�jt j�}|r�|�d��q�|�d��n |�jd�k r�|�d��n |�d��d�d � |��S�) N�closed�closingzfd=� _selector�polling�idle�openz<{}>� )r���r����r�����appendr����r�����getattrr����r ����_test_selector_event� selectorsZ EVENT_READ�format�join)r���r8���r���r����r���r���r����__repr__���s"���� z_UnixReadPipeTransport.__repr__c���������� ���C���s����yt��|�j|�j�}W�nD�ttfk r,���Y�n��tk rX�}�z|��|d��W�d�d�}~X�Y�n^X�|rl|�j� |��nJ|�j ���r�t� d|���d|�_|�j �|�j��|�j �|�jj��|�j �|�jd���d�S�)Nz"Fatal read error on pipe transportz%r was closed by peerT)rf����readr�����max_sizer����r����r4����_fatal_errorr����Z data_receivedr����� get_debugr���r8���r�����_remove_readerr����Zeof_received�_call_connection_lost)r���r+���r=���r���r���r���r�������s���� z"_UnixReadPipeTransport._read_readyc�������������C���s>���|�j�s|�jrd�S�d|�_|�j�|�j��|�j���r:t�d|���d�S�)NTz%r pauses reading)r����r����r����r����r����r����r����debug)r���r���r���r���� pause_reading���s���� z$_UnixReadPipeTransport.pause_readingc�������������C���sB���|�j�s|�jsd�S�d|�_|�j�|�j|�j��|�j���r>t�d|���d�S�)NFz%r resumes reading) r����r����r����r����r����r����r����r���r����)r���r���r���r����resume_reading���s���� z%_UnixReadPipeTransport.resume_readingc�������������C���s ���||�_�d�S�)N)r����)r���rK���r���r���r����set_protocol���s����z#_UnixReadPipeTransport.set_protocolc�������������C���s���|�j�S�)N)r����)r���r���r���r����get_protocol��s����z#_UnixReadPipeTransport.get_protocolc�������������C���s���|�j�S�)N)r����)r���r���r���r���� is_closing��s����z!_UnixReadPipeTransport.is_closingc�������������C���s���|�j�s|��d���d�S�)N)r�����_close)r���r���r���r���r �����s����z_UnixReadPipeTransport.closec�������������C���s.���|�j�d�k r*tjd|���t|�d��|�j�����d�S�)Nzunclosed transport )r���)r����r%���r&���r'���r ���)r���r���r���r����__del__��s���� z_UnixReadPipeTransport.__del__�Fatal error on pipe transportc�������������C���sZ���t�|t�r4|jtjkr4|�j���rLtjd|�|dd��n|�j�|||�|�j d���|�� |��d�S�)Nz%r: %sT)�exc_info)�message� exceptionrp���rK���)rF���r4���r9���ZEIOr����r����r���r�����call_exception_handlerr����r����)r���r=���r����r���r���r���r������s���� z#_UnixReadPipeTransport._fatal_errorc�������������C���s(���d|�_�|�j�|�j��|�j�|�j|��d�S�)NT)r����r����r����r����r����r����)r���r=���r���r���r���r���� ��s����z_UnixReadPipeTransport._closec�������������C���s4���z|�j��|��W�d�|�j����d�|�_d�|�_�d�|�_X�d�S�)N)r�����connection_lostr����r ���r����)r���r=���r���r���r���r����%��s���� z,_UnixReadPipeTransport._call_connection_lost)NN)r����)r����r����r����r����r���r����r����r����r����r����r����r����r ���r����r����r����r����r����r���r���)r���r���rI������s��� rI���c�������������������s����e�Zd�Zd%��fdd� Zdd��Zdd��Zdd ��Zd d��Zdd ��Zdd��Z dd��Z dd��Zdd��Zdd��Z dd��Zdd��Zdd��Zd&dd �Zd'd!d"�Zd#d$��Z���ZS�)(rO���Nc������� ���������s����t����||��||�jd<�||�_|���|�_||�_t��|�_d|�_ d|�_ t�|�j�j }t�|�}t�|�}t�|�} |s�|s�| s�d�|�_d�|�_d�|�_td��t�|�jd��|�j�|�jj|���| s�|r�tj�d�s�|�j�|�jj|�j|�j��|d�k r�|�j�tj|d���d�S�)NrJ���r���Fz?Pipe transport is only for pipes, sockets and character devicesZaix)r���r���r����r����r2���r����r����� bytearray�_buffer� _conn_lostr����rf���r����rz���rx���r����r����ry���r3���r����r����r����r����r!����platform� startswithr����r����r���r����) r���rv���rJ���rK���rL���rM���r����Zis_charZis_fifoZ is_socket)r���r���r���r���2��s2���� z _UnixWritePipeTransport.__init__c�������������C���s����|�j�jg}|�jd�kr |�d��n|�jr0|�d��|�d|�j�����t|�jdd��}|�jd�k r�|d�k r�t� ||�jt j�}|r�|�d��n |�d��|����}|�d|�����n |�jd�k r�|�d��n |�d��d � d �|��S�)Nr����r����zfd=r����r����r����zbufsize=r����z<{}>r����)r���r����r����r����r����r����r����r����r ���r����r����ZEVENT_WRITE�get_write_buffer_sizer����r����)r���r8���r���r����r[���r���r���r���r����W��s&���� z _UnixWritePipeTransport.__repr__c�������������C���s ���t�|�j�S�)N)�lenr����)r���r���r���r���r����o��s����z-_UnixWritePipeTransport.get_write_buffer_sizec�������������C���s6���|�j����rt�d|���|�jr*|��t����n|�����d�S�)Nz%r was closed by peer)r����r����r���r8���r����r�����BrokenPipeError)r���r���r���r���r����r��s ���� z#_UnixWritePipeTransport._read_readyc���������� ���C���s��t�|t�rt|�}|sd�S�|�js&|�jrN|�jtjkr<t�d��|��jd7��_d�S�|�j s�yt �|�j|�}W�nV�t tfk r����d}Y�n<�tk r��}�z|��jd7��_|��|d��d�S�d�}~X�Y�nX�|t|�kr�d�S�|dkr�t|�|d���}|�j�|�j|�j��|��j |7��_ |�����d�S�)Nz=pipe closed by peer or os.write(pipe, data) raised exception.r���r���z#Fatal write error on pipe transport)rF���r����� memoryviewr����r����r���Z!LOG_THRESHOLD_FOR_CONNLOST_WRITESr����warningr����rf����writer����r����r����rV���r����r����r����Z_add_writer�_write_readyZ_maybe_pause_protocol)r���r+����nr=���r���r���r���r����{��s2���� z_UnixWritePipeTransport.writec���������� ���C���s����yt��|�j|�j�}W�nj�ttfk r,���Y�n��tk r~�}�z6|�j����|��jd7��_|�j � |�j��|��|d��W�d�d�}~X�Y�nfX�|t|�j�kr�|�j����|�j � |�j��|�� ���|�jr�|�j �|�j��|��d���d�S�|dkr�|�jd�|�=�d�S�)Nr���z#Fatal write error on pipe transportr���)rf���r����r����r����r����r����rV���r(���r����r�����_remove_writerr����r����Z_maybe_resume_protocolr����r����r����)r���r����r=���r���r���r���r�������s&���� z$_UnixWritePipeTransport._write_readyc�������������C���s���dS�)NTr���)r���r���r���r���� can_write_eof���s����z%_UnixWritePipeTransport.can_write_eofc�������������C���s8���|�j�r d�S�d|�_�|�js4|�j�|�j��|�j�|�jd���d�S�)NT)r����r����r����r����r����r����r����)r���r���r���r���� write_eof���s����z!_UnixWritePipeTransport.write_eofc�������������C���s ���||�_�d�S�)N)r����)r���rK���r���r���r���r�������s����z$_UnixWritePipeTransport.set_protocolc�������������C���s���|�j�S�)N)r����)r���r���r���r���r�������s����z$_UnixWritePipeTransport.get_protocolc�������������C���s���|�j�S�)N)r����)r���r���r���r���r�������s����z"_UnixWritePipeTransport.is_closingc�������������C���s���|�j�d�k r|�js|�����d�S�)N)r����r����r����)r���r���r���r���r ������s����z_UnixWritePipeTransport.closec�������������C���s.���|�j�d�k r*tjd|���t|�d��|�j�����d�S�)Nzunclosed transport )r���)r����r%���r&���r'���r ���)r���r���r���r���r�������s���� z_UnixWritePipeTransport.__del__c�������������C���s���|���d���d�S�)N)r����)r���r���r���r����abort���s����z_UnixWritePipeTransport.abort�Fatal error on pipe transportc�������������C���sN���t�|t�r(|�j���r@tjd|�|dd��n|�j�|||�|�jd���|��|��d�S�)Nz%r: %sT)r����)r����r����rp���rK���) rF���r4���r����r����r���r����r����r����r����)r���r=���r����r���r���r���r�������s���� z$_UnixWritePipeTransport._fatal_errorc�������������C���sF���d|�_�|�jr|�j�|�j��|�j����|�j�|�j��|�j�|�j|��d�S�)NT) r����r����r����r����r����r(���r����r����r����)r���r=���r���r���r���r�������s���� z_UnixWritePipeTransport._closec�������������C���s4���z|�j��|��W�d�|�j����d�|�_d�|�_�d�|�_X�d�S�)N)r����r����r����r ���r����)r���r=���r���r���r���r�������s���� z-_UnixWritePipeTransport._call_connection_lost)NN)r����)N)r����r����r����r���r����r����r����r����r����r����r����r����r����r����r ���r����r����r����r����r����r����r���r���)r���r���rO���/��s"���% ! rO���c���������������@���s���e�Zd�Zdd��ZdS�)rS���c������� ��� ���K���s����d�}|t�jkrt���\}}zPt�j|f||||d|d�|��|�_|d�k rh|����t|���d|d�|�j_ d�}W�d�|d�k r�|����|����X�d�S�)NF)rW���rX���rY���rZ���Zuniversal_newlinesr[����wb)� buffering) � subprocess�PIPErh���Z socketpair�Popen�_procr ���r�����detachrX���) r���r<���rW���rX���rY���rZ���r[���r\���Zstdin_wr���r���r����_start���s���� z_UnixSubprocessTransport._startN)r����r����r����r����r���r���r���r���rS������s���rS���c���������������@���s<���e�Zd�Zdd��Zdd��Zdd��Zdd��Zd d ��Zdd��Zd S�)r���c�������������G���s ���t����d�S�)N)�NotImplementedError)r���r`���r;���r<���r���r���r���rT���)��s���� z&AbstractChildWatcher.add_child_handlerc�������������C���s ���t����d�S�)N)r����)r���r`���r���r���r����remove_child_handler4��s����z)AbstractChildWatcher.remove_child_handlerc�������������C���s ���t����d�S�)N)r����)r���rv���r���r���r����attach_loop<��s����z AbstractChildWatcher.attach_loopc�������������C���s ���t����d�S�)N)r����)r���r���r���r���r ���F��s����zAbstractChildWatcher.closec�������������C���s ���t����d�S�)N)r����)r���r���r���r���� __enter__M��s����zAbstractChildWatcher.__enter__c�������������C���s ���t����d�S�)N)r����)r����a�b�cr���r���r����__exit__S��s����zAbstractChildWatcher.__exit__N) r����r����r����rT���r����r����r ���r����r����r���r���r���r���r�����s��� r���c���������������@���sD���e�Zd�Zdd��Zdd��Zdd��Zdd��Zd d ��Zdd��Zd d��Z dS�)�BaseChildWatcherc�������������C���s���d�|�_�i�|�_d�S�)N)r����� _callbacks)r���r���r���r���r���Z��s����zBaseChildWatcher.__init__c�������������C���s���|���d���d�S�)N)r����)r���r���r���r���r ���^��s����zBaseChildWatcher.closec�������������C���s ���t����d�S�)N)r����)r����expected_pidr���r���r����_do_waitpida��s����zBaseChildWatcher._do_waitpidc�������������C���s ���t����d�S�)N)r����)r���r���r���r����_do_waitpid_alld��s����z BaseChildWatcher._do_waitpid_allc�������������C���sf���|�j�d�k r$|d�kr$|�jr$t�dt��|�j�d�k r<|�j��tj��||�_�|d�k rb|�tj|�j ��|�� ���d�S�)NzCA loop is being detached from a child watcher with pending handlers)r����r����r%���r&����RuntimeWarningr$���r0����SIGCHLDr?���� _sig_chldr����)r���rv���r���r���r���r����g��s���� zBaseChildWatcher.attach_loopc���������� ���C���sF���y|������W�n4�tk r@�}�z|�j�d|d���W�d�d�}~X�Y�nX�d�S�)Nz$Unknown exception in SIGCHLD handler)r����r����)r����rV���r����r����)r���r=���r���r���r���r����{��s����zBaseChildWatcher._sig_chldc�������������C���s2���t��|�rt��|��S�t��|�r*t��|�S�|S�d�S�)N)rf����WIFSIGNALED�WTERMSIG� WIFEXITED�WEXITSTATUS)r����statusr���r���r����_compute_returncode���s ���� z$BaseChildWatcher._compute_returncodeN) r����r����r����r���r ���r����r����r����r����r��r���r���r���r���r����X��s���r����c�������������������sL���e�Zd�Z��fdd�Zdd��Zdd��Zdd��Zd d ��Zdd��Zd d��Z ���Z S�)r���c����������������s���|�j�����t������d�S�)N)r����r(���r���r ���)r���)r���r���r���r ������s���� zSafeChildWatcher.closec�������������C���s���|�S�)Nr���)r���r���r���r���r�������s����zSafeChildWatcher.__enter__c�������������C���s���d�S�)Nr���)r���r����r����r����r���r���r���r�������s����zSafeChildWatcher.__exit__c�������������G���s.���|�j�d�krtd��||f|�j|<�|��|��d�S�)NzICannot add child handler, the child watcher does not have a loop attached)r����r5���r����r����)r���r`���r;���r<���r���r���r���rT������s ���� z"SafeChildWatcher.add_child_handlerc�������������C���s&���y|�j�|=�dS��tk r ���dS�X�d�S�)NTF)r����rA���)r���r`���r���r���r���r�������s ����z%SafeChildWatcher.remove_child_handlerc�������������C���s"���xt�|�j�D�]}|��|��qW�d�S�)N)r#���r����r����)r���r`���r���r���r���r�������s����z SafeChildWatcher._do_waitpid_allc�������������C���s����yt��|t�j�\}}W�n(�tk r>���|}d}t�d|��Y�n0X�|dkrLd�S�|��|�}|�j���rnt� d||��y|�j �|�\}}W�n.�tk r����|�j���r�tjd|dd��Y�nX�|||f|����d�S�)N����z8Unknown child process pid %d, will report returncode 255r���z$process %s exited with returncode %sz'Child watcher got an unexpected pid: %rT)r����) rf����waitpid�WNOHANG�ChildProcessErrorr���r����r��r����r����r����r�����poprA���)r���r����r`���r��ra���r;���r<���r���r���r���r�������s*���� zSafeChildWatcher._do_waitpid)r����r����r����r ���r����r����rT���r����r����r����r����r���r���)r���r���r������s���r���c�������������������sP���e�Zd�Z��fdd�Z��fdd�Zdd��Zdd��Zd d ��Zdd��Zd d��Z ���Z S�)r���c����������������s$���t�������t���|�_i�|�_d|�_d�S�)Nr���)r���r���� threadingZLock�_lock�_zombies�_forks)r���)r���r���r���r������s���� zFastChildWatcher.__init__c����������������s"���|�j�����|�j����t������d�S�)N)r����r(���r ��r���r ���)r���)r���r���r���r ������s���� zFastChildWatcher.closec���������� ���C���s$���|�j���|��jd7��_|�S�Q�R�X�d�S�)Nr���)r ��r��)r���r���r���r���r�������s����zFastChildWatcher.__enter__c���������� ���C���sT���|�j��8�|��jd8��_|�js"|�js&d�S�t|�j�}|�j����W�d�Q�R�X�t�d|��d�S�)Nr���z5Caught subprocesses termination from unknown pids: %s)r ��r��r ��r6���r(���r���r����)r���r����r����r����Zcollateral_victimsr���r���r���r�������s���� zFastChildWatcher.__exit__c���������� ���G���sl���|�j�d�krtd��|�j�:�y|�j�|�}W�n"�tk rL���||f|�j|<�d�S�X�W�d�Q�R�X�|||f|����d�S�)NzICannot add child handler, the child watcher does not have a loop attached)r����r5���r ��r ��r��rA���r����)r���r`���r;���r<���ra���r���r���r���rT��� ��s���� z"FastChildWatcher.add_child_handlerc�������������C���s&���y|�j�|=�dS��tk r ���dS�X�d�S�)NTF)r����rA���)r���r`���r���r���r���r���� ��s ����z%FastChildWatcher.remove_child_handlerc���������� ���C���s����x�yt��dt�j�\}}W�n�tk r,���d�S�X�|dkr:d�S�|��|�}|�j�v�y|�j�|�\}}W�nB�tk r����|�j r�||�j |<�|�j���r�t �d||��wd�}Y�nX�|�j���r�t �d||��W�d�Q�R�X�|d�kr�t �d||��q|||f|����qW�d�S�)Nr-���r���z,unknown process %s exited with returncode %sz$process %s exited with returncode %sz8Caught subprocess termination from unknown pid: %d -> %d)rf���r��r��r��r��r ��r����r��rA���r��r ��r����r����r���r����r����)r���r`���r��ra���r;���r<���r���r���r���r����'��s6���� z FastChildWatcher._do_waitpid_all)r����r����r����r���r ���r����r����rT���r����r����r����r���r���)r���r���r������s��� r���c�������������������sD���e�Zd�ZeZ��fdd�Zdd��Z��fdd�Zdd��Zd d ��Z ���Z S�)�_UnixDefaultEventLoopPolicyc����������������s���t�������d�|�_d�S�)N)r���r����_watcher)r���)r���r���r���r���V��s���� z$_UnixDefaultEventLoopPolicy.__init__c���������� ���C���sH���t�j�8�|�jd�kr:t��|�_tt���tj�r:|�j�|�j j ��W�d�Q�R�X�d�S�)N)r���r ��r ��r���rF���r���current_thread�_MainThreadr�����_localr����)r���r���r���r���� _init_watcherZ��s���� z)_UnixDefaultEventLoopPolicy._init_watcherc����������������s6���t����|��|�jd�k r2tt���tj�r2|�j�|��d�S�)N)r����set_event_loopr ��rF���r��r��r��r����)r���rv���)r���r���r���r��b��s���� z*_UnixDefaultEventLoopPolicy.set_event_loopc�������������C���s���|�j�d�kr|�����|�j�S�)N)r ��r��)r���r���r���r���rQ���p��s���� z-_UnixDefaultEventLoopPolicy.get_child_watcherc�������������C���s���|�j�d�k r|�j�����||�_�d�S�)N)r ��r ���)r���r]���r���r���r����set_child_watcherz��s���� z-_UnixDefaultEventLoopPolicy.set_child_watcher)r����r����r����r���Z _loop_factoryr���r��r��rQ���r��r����r���r���)r���r���r��R��s��� r��),r9���r����rf���r����r0���rh���rx���r����r!���r��r%�����r���r���r���r���r���r���r ���r ���r����logr����__all__r�����ImportErrorr���ZBaseSelectorEventLoopr���Z ReadTransportrI���Z_FlowControlMixinZWriteTransportrO���ZBaseSubprocessTransportrS���r���r����r���r���ZBaseDefaultEventLoopPolicyr��r ���r���r���r���r���r����<module>���sP��� ��|� �JF=On3