o
    ¯N i   ã                   @   s0   d dl mZ d dlmZmZ G dd„ deƒZdS )é    )Úabsolute_import)Úget_event_loopÚEventc                   @   s(   e Zd Zddd„Zdd„ Zddd„ZdS )	ÚAsyncioSchedulerNc                 C   s   |pt ƒ | _d S ©N)r   Úloop)Úselfr   © r	   úN/home/ubuntu/.local/lib/python3.10/site-packages/promise/schedulers/asyncio.pyÚ__init__   ó   zAsyncioScheduler.__init__c                 C   s   | j  |¡ d S r   )r   Ú	call_soon)r   Úfnr	   r	   r
   Úcall
   r   zAsyncioScheduler.callc                    s*   t ƒ ‰ ‡ fdd„}| ||¡ ˆ  ¡  d S )Nc                    s   ˆ   ¡  d S r   )Úset)Ú_©Úer	   r
   Úon_resolve_or_reject   s   z3AsyncioScheduler.wait.<locals>.on_resolve_or_reject)r   Ú_thenÚwait)r   ÚpromiseÚtimeoutr   r	   r   r
   r      s   zAsyncioScheduler.waitr   )Ú__name__Ú
__module__Ú__qualname__r   r   r   r	   r	   r	   r
   r      s    
r   N)Ú
__future__r   Úasyncior   r   Úobjectr   r	   r	   r	   r
   Ú<module>   s    