
    `i                         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dS )    N)	Generator)contextmanager	ExitStack)recordworker_mainTORCH_WORKER_SERVER_SOCKETsocket_pathreturn)NNNc              #      K   ddl m}  ||           }	 d V  |                                 d S # |                                 w xY w)Nr   )_WorkerServer)torch._C._distributed_c10dr   shutdown)r	   r   servers      {/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/torch/distributed/elastic/control_plane.py_worker_serverr      sa      888888];''Fs	   / Ac               #      K   t                      5 } t          j                            t                    }|"|                     t          |                     dV  ddd           dS # 1 swxY w Y   dS )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      s      , 
 jnn%?@@"{ ; ;<<<                 s   AA++A/2A/)r   collections.abcr   
contextlibr   r   0torch.distributed.elastic.multiprocessing.errorsr   __all__r   strr   r        r   <module>r      s    				 % % % % % % 0 0 0 0 0 0 0 0 C C C C C C  :   	2B(C     Y/0       r   