o
    }o™i¿  ã                   @   sB   d dl Z d dlZdefdd„Zddefdd„Zddefd
d„ZdS )é    NÚreturnc                  C   sV   t   t jt j¡} |  d¡ |  d¡ |  ¡ d }W d  ƒ |S 1 s$w   Y  |S )z'Find a free port to use for the server.)z	127.0.0.1r   é   N)ÚsocketÚAF_INETÚSOCK_STREAMÚbindÚlistenÚgetsockname)ÚsÚport© r   úb/home/ubuntu/.local/lib/python3.10/site-packages/nemo/collections/llm/evaluation/adapters/utils.pyÚfind_free_port   s   


ýür   ç      à?c                 C   s8   t   t jt j¡}| |¡ | | |f¡}| ¡  |dkS )z,Check if the given port is open on the host.r   )r   r   r   Ú
settimeoutÚ
connect_exÚclose)Úhostr   ÚtimeoutÚsockÚresultr   r   r   Úis_port_open   s
   
r   é   çš™™™™™É?c                 C   sD   t   ¡ }t   ¡ | |k r t| |ƒrdS t  |¡ t   ¡ | |k sdS )z)Wait for server to be ready with timeout.TF)Útimer   Úsleep)r   r   Úmax_waitÚintervalÚ
start_timer   r   r   Úwait_for_server%   s   

ýr   )r   )r   r   )r   r   Úintr   Úboolr   r   r   r   r   r   Ú<module>   s
   		