Ë
    g^(h�  ã                   ó„   — d dl Z d dlmZ d dlmZmZ d dlmZ dgZdZ	ede
ded	   fd
„«       Zeeded	   fd„«       «       Zy)é    N)Ú	Generator)ÚcontextmanagerÚ	ExitStack)ÚrecordÚworker_mainÚTORCH_WORKER_SERVER_SOCKETÚsocket_pathÚreturn)NNNc              #   ó|   K  — ddl m}  || «      }	 d –— |j                  «        y # |j                  «        w xY w­w)Nr   )Ú_WorkerServer)Útorch._C._distributed_c10dr   Úshutdown)r	   r   Úservers      úe/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/torch/distributed/elastic/control_plane.pyÚ_worker_serverr      s/   è ø€ å8á˜;Ó'€FðÛà�‰Õøˆ�‰Õüs   ‚<’' –<§9¹<c               #   óÐ   K  — t        «       5 } t        j                  j                  t        «      }|�| j                  t        |«      «       d–— ddd«       y# 1 sw Y   yxY w­w)a{  
    This is a context manager that wraps your main entry function. This combines
    the existing ``errors.record`` logic as well as a new ``_WorkerServer`` that
    exposes handlers via a unix socket specified by
    ``Torch_WORKER_SERVER_SOCKET``.

    Example

    ::

     @worker_main()
     def main():
         pass


     if __name__ == "__main__":
         main()

    N)r   ÚosÚenvironÚgetr   Úenter_contextr   )Ústackr	   s     r   r   r      sR   è ø€ ô, 
‹ð ˜Ü—j‘j—n‘nÔ%?Ó@ˆØÐ"Ø×Ñ¤¨{Ó ;Ô<ã÷÷ ñ üs   ‚A&�AAÁ	A&ÁA#ÁA&)r   Úcollections.abcr   Ú
contextlibr   r   Ú0torch.distributed.elastic.multiprocessing.errorsr   Ú__all__r   Ústrr   r   © ó    r   ú<module>r      sv   ðÛ 	Ý %ß 0å Cð ð€ð :Ð ð ð ð ¨	Ð2BÑ(Cò ó ðð Øð�YÐ/Ñ0ò ó ó ñr   