
    .`i                     B    d dl Z  G d d          Z G d d          ZdS )    Nc                   >     e Zd Zddeddf fdZdefdZd	dZ xZS )
Counterr   startreturnNc                 V    t                                                       || _        d S N)super__init__counter)selfr   	__class__s     f/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/vllm/utils/counter.pyr
   zCounter.__init__   s$        c                 4    | j         }| xj         dz  c_         |S )N   r   )r   is     r   __next__zCounter.__next__   s    Lr   c                     d| _         d S )Nr   r   r   s    r   resetzCounter.reset   s    r   r   )r   N)__name__
__module____qualname__intr
   r   r   __classcell__r   s   @r   r   r      s         c $      
#    
       r   r   c                   n     e Zd ZdZddeddf fdZedefd            Zdd	edefd
Zdd	edefdZ	 xZ
S )AtomicCounterzAn atomic, thread-safe counterr   initialr   Nc                     t                                                       || _        t          j                    | _        dS )z6Initialize a new atomic counter to given initial valueN)r	   r
   _value	threadingLock_lock)r   r!   r   s     r   r
   zAtomicCounter.__init__   s3    ^%%


r   c                     | j         S r   )r#   r   s    r   valuezAtomicCounter.value   s
    {r   r   numc                 r    | j         5  | xj        |z  c_        | j        cddd           S # 1 swxY w Y   dS )z@Atomically increment the counter by num and return the new valueNr&   r#   r   r)   s     r   inczAtomicCounter.inc#       Z 	 	KK3KK;	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   ,00c                 r    | j         5  | xj        |z  c_        | j        cddd           S # 1 swxY w Y   dS )z@Atomically decrement the counter by num and return the new valueNr+   r,   s     r   deczAtomicCounter.dec)   r.   r/   r   )r   )r   r   r   __doc__r   r
   propertyr(   r-   r1   r   r   s   @r   r    r       s        ((& & &D & & & & & & s    X s 3     s 3        r   r    )r$   r   r     r   r   <module>r5      sm                       r   