o
    پi                     @   s&   d dl Z d dlmZ G dd dZdS )    N)get_world_groupc                   @   s@   e Zd ZddefddZdd Zdefdd	Zdefd
dZdS )PollBasedBarrierFnoopc                 C   s   || _ d| _d S NF)_noop_local_arrived)selfr    r	   W/home/ubuntu/.local/lib/python3.10/site-packages/sglang/srt/utils/poll_based_barrier.py__init__   s   
zPollBasedBarrier.__init__c                 C   s   | j rJ d| _ d S )NT)r   )r   r	   r	   r
   local_arrive   s   

zPollBasedBarrier.local_arrivereturnc                 C   s    |   }| jo|}|rd| _|S r   )_compute_global_arrivedr   )r   global_arrivedoutputr	   r	   r
   poll_global_arrived   s
   
z$PollBasedBarrier.poll_global_arrivedc                 C   s:   | j p| j}t|}tjj|tjjjt j	d |
 S )N)group)r   r   torchtensordistributed
all_reduceReduceOpMINr   	cpu_groupitem)r   local_arrivedr   r	   r	   r
   r      s   
z(PollBasedBarrier._compute_global_arrivedN)F)__name__
__module____qualname__boolr   r   r   r   r	   r	   r	   r
   r      s
    r   )r   sglang.srt.distributedr   r   r	   r	   r	   r
   <module>   s    