U
    d                     @   sZ   d dl mZ d dlmZ d dlZddlmZ ddlmZ ee	Z
edd Zd	d
 ZdS )    )contextmanager)castN   )api)TensorPipeAgentc              
   c   s   d}|rdnd}d| d| }|  |d| }||kr\d V  | |d | |d qq z| |g W q  tk
r   td| d	| d
  Y q X q d S )NZRpcGroupManagementTokenjoinZleaveZ
Token_for__ DonezGroup membership token z timed out waiting for z to be released.)Zcompare_setdecodesetwaitRuntimeErrorloggererror)storenameis_joinZ	token_keyZjoin_or_leaveZmy_tokenZreturned r   @/tmp/pip-unpacked-wheel-ua33x9lu/torch/distributed/rpc/_utils.py_group_membership_management	   s    r   c                 C   s"   t tt }|| |||}|S )N)r   r   r   Z_get_current_rpc_agent_update_group_membership)Zworker_infoZ
my_devicesZreverse_device_mapr   Zagentretr   r   r   r   "   s    r   )
contextlibr   typingr   loggingr	   r   r   	getLogger__name__r   r   r   r   r   r   r   <module>   s   

