o
    i                     @  sb   d dl mZ d dlZd dlmZ d dlmZ dd	d
ZG dd deZ	G dd dZ
dddZdS )    )annotationsN)	Generator)Anyfutasyncio.Future[Any]returnNonec                 C  s   |   rd S | d  d S N)	cancelled
set_result)r    r   `/var/www/html/livekit_bhavya/venv/lib/python3.10/site-packages/livekit/agents/utils/aio/sleep.py_finish_fut   s   r   c                   @  s   e Zd ZdS )SleepFinishedN)__name__
__module____qualname__r   r   r   r   r      s    r   c                   @  sD   e Zd ZdZdddZddddZdddZdddZdddZdS )Sleepz-Same as asyncio.sleep except it is resettabledelayfloatr   r   c                 C  s   || _ d | _d S r	   )_delay_handler)selfr   r   r   r   __init__   s   
zSleep.__init__N	new_delayfloat | Nonec                 C  sb   |d u r| j }|| _ | jd u rd S | j s| j rt| j  t }|	|t
| j| _d S r	   )r   r   r
   _futdoner   cancelasyncioget_event_loop
call_laterr   )r   r   loopr   r   r   reset   s   

zSleep.resetc                 C  s&   | j d u rd S | j   | j  d S r	   )r   r   r   r   r   r   r   r   *   s   

zSleep.cancelc                   s   | j dkrtjd   | _| jd  d S t }| | _|| j t| j| _	zt
| jI d H  W | j	  d S | j	  w )Nr   )r   r   Futurer   r   r    create_futurer!   r   r   shieldr   )r   r"   r   r   r   _sleep1   s   

zSleep._sleepGenerator[Any, Any, None]c                 C  s   |    S r	   )r(   	__await__r$   r   r   r   r*   @   s   zSleep.__await__)r   r   r   r   r	   )r   r   r   r   )r   r   )r   r)   )	r   r   r   __doc__r   r#   r   r(   r*   r   r   r   r   r      s    


r   r   r   c                 C  s   t | S r	   )r   )r   r   r   r   sleepD   s   r,   )r   r   r   r   )r   r   r   r   )
__future__r   r   collections.abcr   typingr   r   	Exceptionr   r   r,   r   r   r   r   <module>   s    
1