File: //opt/alt/python35/lib64/python3.5/asyncio/__pycache__/selector_events.cpython-35.pyc
��Yf��  �            
   @   s�  d  Z  d g 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 y d d l Z Wn e	 k
 r� d Z Yn Xd 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 l
 m Z d d l
 m Z d d
 l m Z d d l m Z d d �  Z e e d � rLd d �  Z n d d �  Z Gd d �  d e j � Z Gd d �  d e j e j � Z Gd d �  d e � Z Gd d �  d e � Z  Gd d �  d e � Z! d S)z�Event loop using a selector and related classes.
A selector is a "notify-when-ready" multiplexer.  For a subclass which
also includes support for signal handling, see the unix_events sub-module.
�BaseSelectorEventLoop�    N�   )�base_events)�compat)�	constants)�events)�futures)�	selectors)�
transports)�sslproto)�	coroutine)�loggerc             C   sA   y |  j  | � } Wn t k
 r+ d SYn Xt | j | @� Sd  S)NF)�get_key�KeyError�boolr   )�selector�fdZevent�key� r   �</opt/alt/python35/lib64/python3.5/asyncio/selector_events.py�_test_selector_event    s
    
	r   �TCP_NODELAYc             C   s\   |  j  t j t j h k rX |  j t j k rX |  j t j k rX |  j t j t j	 d � d  S)Nr   )
�family�socketZAF_INETZAF_INET6�typeZSOCK_STREAM�protoZIPPROTO_TCPZ
setsockoptr   )�sockr   r   r   �_set_nodelay,   s    r   c             C   s   d  S)Nr   )r   r   r   r   r   2   s    c                   sD  e  Z d  Z d Z d �  f d d � Z d d d d d d d �Z d d	 d
 d d d d d d d d
 �Z d	 d
 d d d d d d d d � Z d d d d d � Z �  f d d �  Z	 d d �  Z
 d d �  Z d d �  Z d d �  Z
 d d �  Z d d �  Z d d d  d! d"