
    `i                         d dl Z d dlmZ d dlZd dlZd dlZd dlZd dlmZ d dlm	Z	 dZ
dZdae j        d             Z G d	 d
ej                  Z G d d          Z G d d          ZdS )    N)sizeof)
_klv_utils)_store_actionsz	127.0.0.1i4  Fc                  
    da d S )NT)
_exit_mode     l/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/cupyx/distributed/_store.py_exitr      s     JJJr	   c                   2     e Zd Z fdZ fdZ fdZ xZS )ExceptionAwareProcessc                      t                      j        |i | d | _        t          j                    \  | _        | _        d S N)super__init__
_exceptionmultiprocessingPipe	_parent_p_child_p)selfargskwargs	__class__s      r
   r   zExceptionAwareProcess.__init__   sA    $)&)))(7(<(>(>%r	   c                     	 t                                                       | j                            d            d S # t          $ r%}| j                            |           Y d }~d S d }~ww xY wr   )r   runr   send	Exception)r   er   s     r
   r   zExceptionAwareProcess.run   s|    	"GGKKMMMMt$$$$$ 	" 	" 	"Mq!!!!!!!!!	"s   :? 
A.	A))A.c                     t                                                       | j                                        r| j                                        }||d S d S r   )r   joinr   pollrecv)r   	exceptionr   s     r
   r!   zExceptionAwareProcess.join%   sX    >   	 ++--I$	  	 $$r	   )__name__
__module____qualname__r   r   r!   __classcell__)r   s   @r
   r   r      sj        ? ? ? ? ?
" " " " "                 r	   r   c                   >    e Zd Zd Zd Zd Zd Zd Zee	fdZ
d ZdS )	TCPStorec                     i | _         d | _        || _        t          j        dd          | _        t          j                    | _        d | _	        d S )Nb   )
storage_process_world_sizer   Value_run	threadingLock_lock_current_barrier)r   
world_sizes     r
   r   zTCPStore.__init__0   sI    %#)#q11	^%%
 $r	   c                 @    t           s|                                  d S d S r   )r   stopr   s    r
   __del__zTCPStore.__del__9   s%     	IIKKKKK	 	r	   c                     || _         d S r   )r/   )r   processs     r
   _set_processzTCPStore._set_process=   s    r	   c                    |5  |                     t          t          j                            }t	          |          dk    rt          j                            |          }|j        dk    rt          d          t          |j	                  d |j                 }t          j        |j        ||           }|'|                    |                                           d d d            d S # 1 swxY w Y   d S )Nr      zInvalid length for message)r#   r   r   action_tlenfrom_buffer_copylength
ValueError	bytearrayvaluer   execute_actionactionsendallklv)r   c_socketaction_bytesaction_mrG   rs         r
   _process_requestzTCPStore._process_request@   s     
	. 
	.#==
0C)D)DEEL<  1$$%.??MM?S(($%ABBB!(.112B8?2BC"1(/5$OO=$$QUUWW---
	. 
	. 
	. 
	. 
	. 
	. 
	. 
	. 
	. 
	. 
	. 
	. 
	. 
	. 
	. 
	. 
	. 
	.s   CC..C25C2c                 ^   t          j         t           j        t           j                  5 }|                    t           j        t           j        d           |                    ||f           |                                 |                    d           | j	        j
        dk    ro	 |                                \  }}n# t           j        $ r Y :w xY wt          j        | j        |fd          }|                                 | j	        j
        dk    od d d            d S # 1 swxY w Y   d S )Nr-         ?T)targetr   daemon)socketAF_INETSOCK_STREAM
setsockopt
SOL_SOCKETSO_REUSEADDRbindlisten
settimeoutr2   rG   accepttimeoutr3   ThreadrP   start)r   hostportsrL   addrts          r
   _server_loopzTCPStore._server_loopM   s\    ]6>6+=>> 	!LL*F,?CCCFFD$<   HHJJJLL)/Q&&%&XXZZNHdd~   H $0"T3 3 3 			 )/Q&&	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s7   A<D"'B?>D"?CD"CAD""D&)D&c                 l    t          | j        ||f          }|                                 || _        d S )N)rS   r   )r   rg   ra   r/   )r   rb   rc   ps       r
   r   zTCPStore.run`   s:    !$D$<9 9 9				r	   c                    t           rd S | j        q| j                                        5  d| j        _        d d d            n# 1 swxY w Y   | j                                        r| j                                         d S d S d S )Nr   )r   r/   r2   get_lockrG   is_aliver!   r:   s    r
   r9   zTCPStore.stopg   s     	F=$##%% $ $"#	$ $ $ $ $ $ $ $ $ $ $ $ $ $ $}%%'' %""$$$$$	 %$% %s   AA
AN)r%   r&   r'   r   r;   r>   rP   rg   _DEFAULT_HOST_DEFAULT_PORTr   r9   r   r	   r
   r*   r*   -   s        % % %       . . .  & %=    % % % % %r	   r*   c                   :    e Zd ZdZdZeefdZd Zd Z	d Z
d ZdS )	TCPStoreProxy2   rR   c                 "    || _         || _        d S r   )rb   rc   )r   rb   rc   s      r
   r   zTCPStoreProxy.__init__v   s    				r	   c                 n   t          t          j                  D ]}	 t          j        t          j        t          j                  5 }|                    | j        | j        f           |	                    |
                                           |                    t          t          j                            }t          |          dk    rt          j                            |          }t#          |j                  d |j                 }|j        dk    r#|                    |          cd d d            c S t-          |                    d                    	 d d d            n# 1 swxY w Y   _# t0          $ r" t3          j        t          j                   Y w xY wt-          d          )Nr   zutf-8zTCPStore is not available)rangerp   MAX_NUM_RETRIESrU   rV   rW   connectrb   rc   rJ   rK   r#   r   r   result_action_trB   rC   rF   rG   rD   statusdecode_resultRuntimeErrordecodeConnectionRefusedErrortimesleepDELAY_FOR_RETRY)r   rI   ird   result_bytesresultrG   s          r
   
_send_recvzTCPStoreProxy._send_recvz   s    }455 	: 	:A:]6>63EFF F!IIty$)4555IIfjjll+++#$66&"2+4 +4 $5 $5L<((1,,!+!;!L!L("* "* )&, 7 7 G!=A--#)#7#7#>#>F F F F F F F F F F #/u||G/D/D"E"EE -F F F F F F F F F F F F F F F * : : :
=899999:6777sB   )E9C'E,.E9="E, E9,E0	0E93E0	4E99(F%$F%c                 P    |                      t          j        |                    S r   )r   r   Get)r   keys     r
   __getitem__zTCPStoreProxy.__getitem__   s    ~1#66777r	   c                 V    |                      t          j        ||                     d S r   )r   r   Set)r   r   rG   s      r
   __setitem__zTCPStoreProxy.__setitem__   s'    *36677777r	   c                 R    |                      t          j                               d S r   )r   r   Barrierr:   s    r
   barrierzTCPStoreProxy.barrier   s#    .0011111r	   N)r%   r&   r'   ru   r   rm   rn   r   r   r   r   r   r   r	   r
   rp   rp   q   ss        OO)    8 8 8.8 8 88 8 82 2 2 2 2r	   rp   )atexitctypesr   r   r3   rU   r}   cupyx.distributedr   r   rm   rn   r   registerr   Processr   r*   rp   r   r	   r
   <module>r      s,                    ( ( ( ( ( ( , , , , , , 
   
         O3      *A% A% A% A% A% A% A% A%H(2 (2 (2 (2 (2 (2 (2 (2 (2 (2r	   