B
    '˜t\  ã               @   s6   d Z ddlmZ ddlmZ dgZG dd„ deƒZdS )z#
Asyncronous event implementation.
é    )Úunicode_literalsé   )ÚFutureÚEventc               @   s8   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ ZdS )r   zA
    Like `asyncio.event`.

    The state is intially false.
    c             C   s   d| _ g | _d S )NF)Ú_stateÚ_waiting_futures)Úself© r	   ú=lib/python3.7/site-packages/prompt_toolkit/eventloop/event.pyÚ__init__   s    zEvent.__init__c             C   s   | j S )N)r   )r   r	   r	   r
   Úis_set   s    zEvent.is_setc             C   s
   d| _ d S )NF)r   )r   r	   r	   r
   Úclear   s    zEvent.clearc             C   s.   d| _ | j}g | _x|D ]}| d ¡ qW d S )NT)r   r   Z
set_result)r   ZfuturesÚfr	   r	   r
   Úset   s
    
z	Event.setc             C   s*   | j rt d ¡S tƒ }| j |¡ |S d S )N)r   r   Zsucceedr   Úappend)r   r   r	   r	   r
   Úwait$   s
    
z
Event.waitN)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r	   r	   r	   r
   r      s   N)r   Z
__future__r   Zfuturer   Ú__all__Úobjectr   r	   r	   r	   r
   Ú<module>   s   