o
    "j	                     @   s<   d dl Z d dlZd dlZd dlmZ d dlZg Zdd ZdS )    N)closingc              	   C   s4  z	t dd }W n   d}Y |rdS t| trJ 	 d}g }| D ]U}|d}tttjtj<}|	d |
tjtjd ttdrP|
tjtjd ||d	 t|d f}|d	krhd}|| W d   n1 srw   Y  q"|stjd
 tjdt| d  tj  td ndS q)aC  
    Wait until parameter servers are ready, use connext_ex to detect
    port readiness.

    Args:
    endpoints (list|tuple): endpoints string list, like:
    ["127.0.0.1:8080", "127.0.0.1:8081"]

    Examples:
        .. code-block:: python

             >>> wait_server_ready(["127.0.0.1:8080", "127.0.0.1:8081"])
    Z!FLAGS_dynamic_static_unified_commFNT:      SO_REUSEPORTr   z)server not ready, wait 3 sec to retry...
znot ready endpoints:
   )paddleZ	get_flags
isinstancestrsplitr   socketAF_INETSOCK_STREAM
settimeout
setsockopt
SOL_SOCKETSO_REUSEADDRhasattrr   
connect_exintappendsysstderrwriteflushtimesleep)Z	endpointsZuse_new_commall_okZnot_ready_endpointsepZip_portsockresult r"   v/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/paddle/distributed/fleet/base/private_helper_function.pywait_server_ready   sL   




r$   )r   r   r   
contextlibr   r	   __all__r$   r"   r"   r"   r#   <module>   s   