o
    `۷i[                  	   @   sT   d dl Z d dlZ d dlmZmZ 		d
deegdf dedee j ddfdd	ZdS )    N)CallableOptional      ?callback
interval_sloopreturnc                    sD   du rt  du rtd fdd}j| dd dS )a1  
    Start logging event loop lags to the callback. In ideal circumstances they should be
    very close to zero. Lags may increase if event loop callbacks block for too long.

    Note: this works for all event loops, including uvloop.

    :param callback: Callback to call with the lag in seconds.
    Nz)No provided loop, nor running loop found.c                     sJ     r# } tI d H   |   } |   sd S d S )N)
is_runningtimeasynciosleep)t0lagr   r   r    N/home/ubuntu/vllm_env/lib/python3.10/site-packages/ray/_private/async_utils.pymonitor-   s   z(enable_monitor_loop_lag.<locals>.monitorzasync_utils.monitor_loop_lag)name)r   get_running_loop
ValueErrorcreate_task)r   r   r   r   r   r   r   enable_monitor_loop_lag   s   r   )r   N)r   asyncio.eventstypingr   r   floatAbstractEventLoopr   r   r   r   r   <module>   s   