관리-도구
편집 파일: proactor_events.cpython-39.pyc
a �����DOg�}����������������������@���sX��d�Z�dZddlZddlZddlZddlZddlZddlZddlZddl m Z �ddl mZ�ddl mZ�ddl m Z �dd l mZ�dd l mZ�ddl mZ�ddl mZ�dd lmZ�dd��ZG�dd��dejej�ZG�dd��deej�ZG�dd��deej�ZG�dd��de�ZG�dd��deej�ZG�dd��deeej�Z G�dd��deeej�Z!G�dd��de j"�Z#dS�) z�Event loop using a proactor and related classes. A proactor is a "notify-on-completion" multiplexer. Currently a proactor is only implemented on Windows with IOCP. )�BaseProactorEventLoop�����N����)�base_events)� constants)�futures)� exceptions)� protocols)�sslproto)� transports)�trsock)�loggerc�����������������C���s����t��|�|�jd<�z|���|�jd<�W�n.�tjyP���|�j���rLtj d|dd��Y�n0�d|�jvr�z|� ��|�jd<�W�n�tjy����d�|�jd<�Y�n0�d�S�)N�socketZsocknamezgetsockname() failed on %rT��exc_info�peername)r����TransportSocket�_extra�getsocknamer ����error�_loop� get_debugr����warning�getpeername)� transport�sock��r����//usr/lib64/python3.9/asyncio/proactor_events.py�_set_socket_extra���s���� � r���c�����������������������s����e�Zd�ZdZd��fdd� Zdd��Zdd��Zd d ��Zdd��Zd d��Z dd��Z ejfdd�Z ddd�Zdd��Zdd��Zdd��Z���ZS�)�_ProactorBasePipeTransportz*Base class for pipe and socket transports.Nc��������������������s����t����||��|��|��||�_|��|��||�_d�|�_d�|�_d�|�_d|�_ d|�_ d|�_d|�_|�jd�url|�j� ���|�j�|�jj|���|d�ur�|�j�tj|d���d�S�)Nr���F)�super�__init__� _set_extra�_sock�set_protocol�_server�_buffer� _read_fut� _write_fut�_pending_write� _conn_lost�_closing�_eof_writtenZ_attachr���� call_soon� _protocolZconnection_mader���Z_set_result_unless_cancelled��self�loopr����protocol�waiter�extra�server�� __class__r���r���r ���2���s&���� �z#_ProactorBasePipeTransport.__init__c�����������������C���s����|�j�jg}|�jd�u�r |�d��n|�jr0|�d��|�jd�urP|�d|�j��������|�jd�url|�d|�j����|�jd�ur�|�d|�j����|�jr�|�dt |�j������|�j r�|�d��d�d �|��S�) N�closed�closingzfd=zread=zwrite=zwrite_bufsize=zEOF writtenz<{}>� ) r6����__name__r"����appendr*����filenor&���r'���r%����lenr+����format�join)r/����infor���r���r����__repr__H���s ���� z#_ProactorBasePipeTransport.__repr__c�����������������C���s���||�j�d<�d�S�)N�pipe)r����r/���r���r���r���r���r!���Z���s����z%_ProactorBasePipeTransport._set_extrac�����������������C���s ���||�_�d�S��N�r-���)r/���r1���r���r���r���r#���]���s����z'_ProactorBasePipeTransport.set_protocolc�����������������C���s���|�j�S�rD���rE����r/���r���r���r����get_protocol`���s����z'_ProactorBasePipeTransport.get_protocolc�����������������C���s���|�j�S�rD���)r*���rF���r���r���r���� is_closingc���s����z%_ProactorBasePipeTransport.is_closingc�����������������C���s\���|�j�r d�S�d|�_�|��jd7��_|�js>|�jd�u�r>|�j�|�jd���|�jd�urX|�j����d�|�_d�S�)NTr���) r*���r)���r%���r'���r���r,����_call_connection_lostr&����cancelrF���r���r���r����closef���s���� z _ProactorBasePipeTransport.closec�����������������C���s*���|�j�d�ur&|d|���t|�d��|�����d�S�)Nzunclosed transport )�source)r"����ResourceWarningrK���)r/����_warnr���r���r����__del__q���s���� z"_ProactorBasePipeTransport.__del__�Fatal error on pipe transportc�������������� ���C���s`���zNt�|t�r*|�j���rBtjd|�|dd��n|�j�|||�|�jd���W�|��|��n|��|��0�d�S�)Nz%r: %sTr���)�message� exceptionr���r1���) � isinstance�OSErrorr���r���r����debug�call_exception_handlerr-����_force_close)r/����excrQ���r���r���r����_fatal_errorv���s���� � z'_ProactorBasePipeTransport._fatal_errorc�����������������C���s����|�j�d�ur6|�j����s6|d�u�r*|�j��d���n|�j��|��|�jr@d�S�d|�_|��jd7��_|�jrj|�j����d�|�_|�jr�|�j����d�|�_d|�_ d�|�_ |�j�|�j |��d�S�)NTr���r���)� _empty_waiter�done� set_result� set_exceptionr*���r)���r'���rJ���r&���r(���r%���r���r,���rI���)r/���rX���r���r���r���rW�������s"���� z'_ProactorBasePipeTransport._force_closec�������������� ���C���s����zd|�j��|��W�t|�jd�r8|�j���dkr8|�j�tj��|�j����d�|�_|�j }|d�ur�|� ���d�|�_ nVt|�jd�r�|�j���dkr�|�j�tj��|�j����d�|�_|�j }|d�ur�|� ���d�|�_ 0�d�S�)N�shutdown���)r-���Zconnection_lost�hasattrr"���r<���r^���r ���� SHUT_RDWRrK���r$���Z_detach)r/���rX���r4���r���r���r���rI�������s$���� � z0_ProactorBasePipeTransport._call_connection_lostc�����������������C���s"���|�j�}|�jd�ur|t|�j�7�}|S�rD���)r(���r%���r=���)r/����sizer���r���r����get_write_buffer_size����s���� z0_ProactorBasePipeTransport.get_write_buffer_size)NNN)rP���)r:���� __module__�__qualname__�__doc__r ���rA���r!���r#���rG���rH���rK����warnings�warnrO���rY���rW���rI���rc���� __classcell__r���r���r5���r���r���.���s������ r���c�����������������������sT���e�Zd�ZdZd��fdd� Zdd��Zdd��Zd d ��Zdd��Zd d��Z ddd�Z ���ZS�)�_ProactorReadPipeTransportzTransport for read pipes.Nc��������������������s:���d�|�_�d|�_t���||||||��|�j�|�j��d|�_d�S�)NTF)� _pending_data�_pausedr���r ���r���r,���� _loop_readingr.���r5���r���r���r �������s ����z#_ProactorReadPipeTransport.__init__c�����������������C���s���|�j��o|�j�S�rD���)rl���r*���rF���r���r���r���� is_reading����s����z%_ProactorReadPipeTransport.is_readingc�����������������C���s0���|�j�s|�jrd�S�d|�_|�j���r,t�d|���d�S�)NTz%r pauses reading)r*���rl���r���r���r���rU���rF���r���r���r���� pause_reading����s ���� z(_ProactorReadPipeTransport.pause_readingc�����������������C���sn���|�j�s|�jsd�S�d|�_|�jd�u�r0|�j�|�jd���|�j}d�|�_|d�urT|�j�|�j|��|�j���rjt � d|���d�S�)NFz%r resumes reading)r*���rl���r&���r���r,���rm���rk����_data_receivedr���r���rU����r/����datar���r���r����resume_reading����s���� z)_ProactorReadPipeTransport.resume_readingc�������������� ���C���s~���|�j����rt�d|���z|�j���}W�nH�ttfy<�����Y�n2�tyl�}�z|�� |d��W�Y�d�}~d�S�d�}~0�0�|sz|�� ���d�S�)Nz%r received EOFz1Fatal error: protocol.eof_received() call failed.)r���r���r���rU���r-���Zeof_received� SystemExit�KeyboardInterrupt� BaseExceptionrY���rK���)r/���Z keep_openrX���r���r���r���� _eof_received����s���� �z(_ProactorReadPipeTransport._eof_receivedc�������������� ���C���s����|�j�r|�jd�u�sJ��||�_d�S�|s.|�����d�S�t|�jtj�r�zt�|�j|��W�q��tt fyf�����Y�q��t y��}�z|��|d��W�Y�d�}~d�S�d�}~0�0�n|�j�|��d�S�)Nz3Fatal error: protocol.buffer_updated() call failed.) rl���rk���rw���rS���r-���r���ZBufferedProtocolZ_feed_data_to_buffered_protort���ru���rv���rY���Z data_received)r/���rr���rX���r���r���r���rp�������s$�����z)_ProactorReadPipeTransport._data_receivedc�������������� ���C���s���d�}�z�z�|d�urP|�j�|u�s0|�j�d�u�r,|�js0J��d�|�_�|���rH|���}n|����|�jrtd�}W�W�|d�urp|��|��d�S�|dkr�W�W�|d�ur�|��|��d�S�|�js�|�jj� |�j d�|�_�W�n��t�y�}�z8|�js�|��|d��n|�j� ��r�tjddd��W�Y�d�}~n�d�}~0��t�y2�}�z|��|��W�Y�d�}~nnd�}~0��t�yb�}�z|��|d��W�Y�d�}~n>d�}~0��tj�y����|�j�s|��Y�n0�|�j�s�|�j��|�j��W�|d�u�r�|��|��n|d�u�r�|��|��0�d�S�)N�����i����z"Fatal read error on pipe transportz*Read error on pipe transport while closingTr���)r&���r*���r[����resultrJ���rp���rl���r���� _proactor�recvr"����ConnectionAbortedErrorrY���r���r���rU����ConnectionResetErrorrW���rT���r����CancelledError�add_done_callbackrm���)r/����futrr���rX���r���r���r���rm�����sV����� � � � � z(_ProactorReadPipeTransport._loop_reading)NNN)N)r:���rd���re���rf���r ���rn���ro���rs���rw���rp���rm���ri���r���r���r5���r���rj�������s������ rj���c�����������������������s^���e�Zd�ZdZdZ��fdd�Zdd��Zddd �Zd d��Zdd ��Z dd��Z dd��Zdd��Z���Z S�)�_ProactorBaseWritePipeTransportzTransport for write pipes.Tc��������������������s���t���j|i�|���d�|�_d�S�rD���)r���r ���rZ����r/����args�kwr5���r���r���r ���G��s����z(_ProactorBaseWritePipeTransport.__init__c�����������������C���s����t�|tttf�s$tdt|�j�����|�jr2td��|�j d�urDtd��|sLd�S�|�j rz|�j tjkrht �d��|��j d7��_ d�S�|�jd�u�r�|�jd�u�s�J��|�jt|�d��n.|�js�t|�|�_|�����n|�j�|��|�����d�S�)Nz/data argument must be a bytes-like object, not zwrite_eof() already calledz(unable to write; sendfile is in progresszsocket.send() raised exception.r���)rr���)rS����bytes� bytearray� memoryview� TypeError�typer:���r+����RuntimeErrorrZ���r)���r����!LOG_THRESHOLD_FOR_CONNLOST_WRITESr���r���r'���r%���� _loop_writing�_maybe_pause_protocol�extendrq���r���r���r����writeK��s2������ z%_ProactorBaseWritePipeTransport.writeNc�������������� ���C���s|���z|d�ur"|�j�d�u�r"|�jr"W�d�S�||�j�u�s0J��d�|�_�d|�_|rH|����|d�u�r\|�j}d�|�_|s�|�jrv|�j�|�jd���|�jr�|�j � tj��|�� ���n\|�jj�|�j |�|�_�|�j����s�|�jdks�J��t|�|�_|�j��|�j��|�����n|�j��|�j��|�jd�u�r|�j�d�u��r|�j�d���W�n`�t�yF�}�z|��|��W�Y�d�}~n:d�}~0��t�yv�}�z|��|d��W�Y�d�}~n d�}~0�0�d�S�)Nr���z#Fatal write error on pipe transport)r'���r*���r(���ry���r%���r���r,���rI���r+���r"���r^���r ����SHUT_WR�_maybe_resume_protocolrz����sendr[���r=���r���r����r����rZ���r\���r}���rW���rT���rY���)r/����frr���rX���r���r���r���r����q��s<���� z-_ProactorBaseWritePipeTransport._loop_writingc�����������������C���s���dS��NTr���rF���r���r���r���� can_write_eof���s����z-_ProactorBaseWritePipeTransport.can_write_eofc�����������������C���s���|������d�S�rD���)rK���rF���r���r���r���� write_eof���s����z)_ProactorBaseWritePipeTransport.write_eofc�����������������C���s���|���d���d�S�rD����rW���rF���r���r���r����abort���s����z%_ProactorBaseWritePipeTransport.abortc�����������������C���s:���|�j�d�urtd��|�j���|�_�|�jd�u�r4|�j��d���|�j�S�)NzEmpty waiter is already set)rZ���r����r���Z create_futurer'���r\���rF���r���r���r����_make_empty_waiter���s���� z2_ProactorBaseWritePipeTransport._make_empty_waiterc�����������������C���s ���d�|�_�d�S�rD���)rZ���rF���r���r���r����_reset_empty_waiter���s����z3_ProactorBaseWritePipeTransport._reset_empty_waiter)NN)r:���rd���re���rf���Z_start_tls_compatibler ���r����r����r����r����r����r����r����ri���r���r���r5���r���r����A��s���& )r����c�����������������������s$���e�Zd�Z��fdd�Zdd��Z���ZS�)�_ProactorWritePipeTransportc��������������������s8���t���j|i�|���|�jj�|�jd�|�_|�j�|�j��d�S�)N����) r���r ���r���rz���r{���r"���r&���r����_pipe_closedr����r5���r���r���r ������s����z$_ProactorWritePipeTransport.__init__c�����������������C���sv���|����rd�S�|���dksJ��|�jr4|�jd�u�s0J��d�S�||�ju�sLJ�||�jf��d�|�_|�jd�urj|��t����n|�����d�S�)Nrx���)� cancelledry���r*���r&���r'���rW����BrokenPipeErrorrK���)r/���r����r���r���r���r�������s���� z(_ProactorWritePipeTransport._pipe_closed)r:���rd���re���r ���r����ri���r���r���r5���r���r�������s���r����c�����������������������sX���e�Zd�ZdZd��fdd� Zdd��Zdd��Zd d ��Zddd�Zdd d�Z ddd�Z ���ZS�)�_ProactorDatagramTransporti���Nc��������������������s>���||�_�d�|�_t��j|||||d��t���|�_|�j�|�j ��d�S�)N)r2���r3���) �_addressrZ���r���r ����collections�dequer%���r���r,���rm���)r/���r0���r���r1����addressr2���r3���r5���r���r���r ������s ���� z#_ProactorDatagramTransport.__init__c�����������������C���s���t�|�|��d�S�rD����r���rC���r���r���r���r!������s����z%_ProactorDatagramTransport._set_extrac�����������������C���s���t�dd��|�jD���S�)Nc�����������������s���s���|�]\}}t�|�V��qd�S�rD���)r=���)�.0rr����_r���r���r���� <genexpr>���rx���zC_ProactorDatagramTransport.get_write_buffer_size.<locals>.<genexpr>)�sumr%���rF���r���r���r���rc������s����z0_ProactorDatagramTransport.get_write_buffer_sizec�����������������C���s���|���d���d�S�rD���r����rF���r���r���r���r�������s����z _ProactorDatagramTransport.abortc�����������������C���s����t�|tttf�stdt|���|s&d�S�|�jd�urN|d�|�jfvrNtd|�j�����|�jr�|�jr�|�jt j krpt�d��|��jd7��_d�S�|�j �t|�|f��|�jd�u�r�|�����|�����d�S�)Nz,data argument must be bytes-like object (%r)z!Invalid address: must be None or z!socket.sendto() raised exception.r���)rS���r����r����r����r����r����r����� ValueErrorr)���r���r����r���r���r%���r;���r'���r����r����)r/���rr����addrr���r���r����sendto���s&����� � z!_ProactorDatagramTransport.sendtoc�������������� ���C���s ��z�|�j�rW�d�S�||�ju�sJ��d�|�_|r.|����|�jr@|�j�r\|�jr\|�jrV|�j�|�jd���W�d�S�|�j� ��\}}|�jd�ur�|�jj �|�j|�|�_n|�jj j |�j||d�|�_W�n`�ty��}�z|�j�|��W�Y�d�}~nPd�}~0��t�y�}�z|��|d��W�Y�d�}~n d�}~0�0�|�j�|�j��|�����d�S�)N)r����z'Fatal write error on datagram transport)r)���r'���ry���r%���r����r*���r���r,���rI����popleftrz���r����r"���r����rT���r-����error_received� ExceptionrY���r���r����r����)r/���r����rr���r����rX���r���r���r���r�������s4���� �� "z(_ProactorDatagramTransport._loop_writingc�������������� ���C���s���d�}�zxz�|�j�r*W�W�|r&|�j�||��d�S�|�j|u�sH|�jd�u�rD|�jsHJ��d�|�_|d�ur�|���}|�jr�d�}W�W�|r~|�j�||��d�S�|�jd�ur�||�j�}}n|\}}|�j�r�W�W�|r�|�j�||��d�S�|�jd�ur�|�jj� |�j |�j�|�_n|�jj�|�j |�j�|�_W�nP�t �y.�}�z|�j�|��W�Y�d�}~nBd�}~0��tj�yL���|�j�sH��Y�n0�|�jd�u�rh|�j�|�j��W�|�r�|�j�||��n|�r�|�j�||��0�d�S�rD���)r)���r-���Zdatagram_receivedr&���r*���ry���r����r���rz���r{���r"����max_size�recvfromrT���r����r���r~���r���rm���)r/���r����rr���r�����resrX���r���r���r���rm�����sZ����$��� � �� �z(_ProactorDatagramTransport._loop_reading)NNN)N)N)N)r:���rd���re���r����r ���r!���rc���r����r����r����rm���ri���r���r���r5���r���r�������s������ !r����c�������������������@���s ���e�Zd�ZdZdd��Zdd��ZdS�)�_ProactorDuplexPipeTransportzTransport for duplex pipes.c�����������������C���s���dS�)NFr���rF���r���r���r���r����K��s����z*_ProactorDuplexPipeTransport.can_write_eofc�����������������C���s���t��d�S�rD���)�NotImplementedErrorrF���r���r���r���r����N��s����z&_ProactorDuplexPipeTransport.write_eofN)r:���rd���re���rf���r����r����r���r���r���r���r����F��s���r����c�����������������������sB���e�Zd�ZdZejjZd��fdd� Zdd��Z dd��Z d d ��Z���ZS�)�_ProactorSocketTransportz Transport for connected sockets.Nc��������������������s$���t����||||||��t�|��d�S�rD���)r���r ���r���Z_set_nodelayr.���r5���r���r���r ���Y��s����z!_ProactorSocketTransport.__init__c�����������������C���s���t�|�|��d�S�rD���r����rC���r���r���r���r!���^��s����z#_ProactorSocketTransport._set_extrac�����������������C���s���dS�r����r���rF���r���r���r���r����a��s����z&_ProactorSocketTransport.can_write_eofc�����������������C���s2���|�j�s|�jrd�S�d|�_|�jd�u�r.|�j�tj��d�S�r����)r*���r+���r'���r"���r^���r ���r����rF���r���r���r���r����d��s ���� z"_ProactorSocketTransport.write_eof)NNN) r:���rd���re���rf���r���Z _SendfileModeZ TRY_NATIVEZ_sendfile_compatibler ���r!���r����r����ri���r���r���r5���r���r����R��s������r����c�����������������������s����e�Zd�Z��fdd�Zd3dd�Zd4dddddd�dd �Zd5d d�Zd6dd �Zd7dd�Zd8dd�Z ��fdd�Z dd��Zdd��Zdd��Z dd��Zdd��Zdd��Zd d!��Zd"d#��Zd$d%��Zd9d&d'�Zd(d)��Zd:d+d,�Zd-d.��Zd/d0��Zd1d2��Z���ZS�);r���c��������������������sh���t�������t�d|jj��||�_||�_d�|�_i�|�_ |� |���|�����t� ��t���u�rdt�|�j�����d�S�)NzUsing proactor: %s)r���r ���r���rU���r6���r:���rz���� _selector�_self_reading_future�_accept_futuresZset_loop�_make_self_pipe� threading�current_thread�main_thread�signal� set_wakeup_fd�_csockr<���)r/���Zproactorr5���r���r���r ���n��s���� zBaseProactorEventLoop.__init__Nc�����������������C���s���t�|�|||||�S�rD���)r����)r/���r���r1���r2���r3���r4���r���r���r����_make_socket_transport{��s���� �z,BaseProactorEventLoop._make_socket_transportF)�server_side�server_hostnamer3���r4����ssl_handshake_timeoutc������������� ���C���s0���t�j|�|||||| d�} t|�|| ||d��| jS�)N)r�����r3���r4���)r ���ZSSLProtocolr����Z_app_transport)r/���Zrawsockr1���� sslcontextr2���r����r����r3���r4���r����Zssl_protocolr���r���r����_make_ssl_transport���s������z)BaseProactorEventLoop._make_ssl_transportc�����������������C���s���t�|�|||||�S�rD���)r����)r/���r���r1���r����r2���r3���r���r���r����_make_datagram_transport���s���� �z.BaseProactorEventLoop._make_datagram_transportc�����������������C���s���t�|�||||�S�rD���)r�����r/���r���r1���r2���r3���r���r���r����_make_duplex_pipe_transport���s�����z1BaseProactorEventLoop._make_duplex_pipe_transportc�����������������C���s���t�|�||||�S�rD���)rj���r����r���r���r����_make_read_pipe_transport���s����z/BaseProactorEventLoop._make_read_pipe_transportc�����������������C���s���t�|�||||�S�rD���)r����r����r���r���r����_make_write_pipe_transport���s�����z0BaseProactorEventLoop._make_write_pipe_transportc��������������������sj���|�����rtd��|����rd�S�t���t���u�r6t�d��|�����|�� ���|�j ����d�|�_ d�|�_t ������d�S�)Nz!Cannot close a running event loopr_���)Z is_runningr����� is_closedr����r����r����r����r�����_stop_accept_futures�_close_self_piperz���rK���r����r���rF���r5���r���r���rK������s���� zBaseProactorEventLoop.closec���������������������s���|�j��||�I�d�H�S�rD���)rz���r{���)r/���r����nr���r���r���� sock_recv���s����zBaseProactorEventLoop.sock_recvc���������������������s���|�j��||�I�d�H�S�rD���)rz���� recv_into)r/���r����bufr���r���r����sock_recv_into���s����z$BaseProactorEventLoop.sock_recv_intoc���������������������s���|�j��||�I�d�H�S�rD���)rz���r����)r/���r���rr���r���r���r����sock_sendall���s����z"BaseProactorEventLoop.sock_sendallc���������������������s���|�j��||�I�d�H�S�rD���)rz����connect)r/���r���r����r���r���r����sock_connect���s����z"BaseProactorEventLoop.sock_connectc���������������������s���|�j��|�I�d�H�S�rD���)rz����acceptrC���r���r���r����sock_accept���s����z!BaseProactorEventLoop.sock_acceptc�������������� �������s>��z|����}W�n4�ttjfy@�}�zt�d��W�Y�d�}~n d�}~0�0�zt�|�j}W�n�t yn���t�d��Y�n0�|rx|n|}|s�dS�t |d�}|r�t ||�|�n|} t ||�}d} zpt | |�|�}|dkr�| W�| dkr�|�|��S�|�j� ||||�I�d�H��||7�}| |7�} q�W�| dk�r:|�|��n| dk�r8|�|��0�d�S�)Nznot a regular filer���l������)r<����AttributeError�io�UnsupportedOperationr���ZSendfileNotAvailableError�os�fstat�st_sizerT����min�seekrz����sendfile)r/���r����file�offset�countr<����err�fsize� blocksizeZend_pos� total_sentr���r���r����_sock_sendfile_native���s:���� � � z+BaseProactorEventLoop._sock_sendfile_nativec���������������������sn���|����}|����|���I�d�H��z4|�j|j|||dd�I�d�H�W�|����|rP|����S�n|����|rh|����0�d�S�)NF)�fallback)rn���ro���r����Z sock_sendfiler"���r����rs���)r/���Ztranspr����r����r����rs���r���r���r����_sendfile_native���s"���������z&BaseProactorEventLoop._sendfile_nativec�����������������C���sL���|�j�d�ur|�j�����d�|�_�|�j����d�|�_|�j����d�|�_|��jd8��_d�S�)Nr���)r����rJ����_ssockrK���r����� _internal_fdsrF���r���r���r���r�������s���� z&BaseProactorEventLoop._close_self_pipec�����������������C���s:���t����\|�_|�_|�j�d��|�j�d��|��jd7��_d�S�)NFr���)r ���� socketpairr����r�����setblockingr����rF���r���r���r���r�������s����z%BaseProactorEventLoop._make_self_pipec�������������� ���C���s����z4|d�ur|�����|�j|ur"W�d�S�|�j�|�jd�}W�n`�tjyJ���Y�d�S��ttfy`�����Y�nH�t y��}�z|�� d||�d���W�Y�d�}~nd�}~0�0�||�_|�|�j��d�S�)Ni���z.Error on reading from the event loop self pipe)rQ���rR���r0���) ry���r����rz���r{���r����r���r~���rt���ru���rv���rV���r����_loop_self_reading)r/���r����rX���r���r���r���r�������s$���� �z(BaseProactorEventLoop._loop_self_readingc�����������������C���sL���|�j�}|d�u�rd�S�z|�d��W�n&�tyF���|�jrBtjddd��Y�n0�d�S�)N�����z3Fail to write a null byte into the self-pipe socketTr���)r����r����rT����_debugr���rU���)r/����csockr���r���r����_write_to_self��s�����z$BaseProactorEventLoop._write_to_self�d���c��������������������s(���d��������fdd� ���������d�S�)Nc�������������� ������s,��z�|�d�urn|�����\}}�jr,t�d�||�����}�d�urX�j||�dd|i��d��n�j||d|i�d������r|W�d�S��j���}�W�n��t y��}�zP�� ��dkrȈ�d|t� ��d��������n�jr�tjd �dd ��W�Y�d�}~n>d�}~0��tj�y��������Y�n0�|��j�� ��<�|������d�S�)Nz#%r got a new connection from %r: %rTr���)r����r3���r4���r����r����r_���zAccept failed on a socket)rQ���rR���r ���zAccept failed on socket %rr���)ry���r����r���rU���r����r����r����rz���r����rT���r<���rV���r���r���rK���r���r~���r����r���)r�����connr����r1���rX����r0����protocol_factoryr/���r4���r���r����r����r���r���r0���0��sJ�������� �z2BaseProactorEventLoop._start_serving.<locals>.loop)N)r,���)r/���r����r���r����r4����backlogr����r���r����r����_start_serving,��s����%z$BaseProactorEventLoop._start_servingc�����������������C���s���d�S�rD���r���)r/���Z event_listr���r���r����_process_eventsW��s����z%BaseProactorEventLoop._process_eventsc�����������������C���s&���|�j����D�]}|����q |�j�����d�S�rD���)r�����valuesrJ����clear)r/����futurer���r���r���r����[��s���� z*BaseProactorEventLoop._stop_accept_futuresc�����������������C���s6���|�j��|���d��}|r|����|�j�|��|����d�S�rD���)r�����popr<���rJ���rz���� _stop_servingrK���)r/���r���r����r���r���r���r���`��s ����z#BaseProactorEventLoop._stop_serving)NNN)N)NNN)NN)NN)NN)N)NNr����N)r:���rd���re���r ���r����r����r����r����r����r����rK���r����r����r����r����r����r����r����r����r����r����r����r����r����r����r���ri���r���r���r5���r���r���l��sN��� ��� ����� ��� ��� ��� ��� +r���)$rf����__all__r����r����r ���rg���r����r����r������r���r���r���r���r���r ���r ���r����logr���r���Z_FlowControlMixinZ BaseTransportr���Z ReadTransportrj���ZWriteTransportr����r����ZDatagramTransportr����Z Transportr����r����Z BaseEventLoopr���r���r���r���r����<module>���sV��������n����