
    
9j                        S SK Jr  S SKrS SKJr  S SKrS SKrS SKrS SKrS SK	J
r
  S SK	Jr  SrSrSq\R                  S	 5       r " S
 S\R"                  5      r " S S5      r " S S5      rg)    )annotationsN)sizeof)
_klv_utils)_store_actionsz	127.0.0.1i4  Fc                     Sq g )NT)
_exit_mode     R/home/wildlama/miniconda3/lib/python3.13/site-packages/cupyx/distributed/_store.py_exitr      s	     Jr
   c                  @   ^  \ rS rSrU 4S jrU 4S jrU 4S jrSrU =r$ )ExceptionAwareProcess   c                x   > [         TU ]  " U0 UD6  S U l        [        R                  " 5       u  U l        U l        g N)super__init__
_exceptionmultiprocessingPipe	_parent_p_child_p)selfargskwargs	__class__s      r   r   ExceptionAwareProcess.__init__   s3    $)&)(7(<(<(>%r
   c                   >  [         TU ]  5         U R                  R                  S 5        g ! [         a%  nU R                  R                  U5         S nAg S nAff = fr   )r   runr   send	Exception)r   er   s     r   r   ExceptionAwareProcess.run    sH    	"GKMMMt$ 	"MMq!!	"s   )- 
AAAc                   > [         TU ]  5         U R                  R                  5       (       a   U R                  R	                  5       nUb  Ueg g r   )r   joinr   pollrecv)r   	exceptionr   s     r   r%   ExceptionAwareProcess.join'   sF    >>  ++-I$ % !r
   )r   r   r   )	__name__
__module____qualname____firstlineno__r   r   r%   __static_attributes____classcell__)r   s   @r   r   r      s    ?
"   r
   r   c                  F    \ rS rSrS rS rS rS rS r\	\
4S jrS rS	rg
)TCPStore/   c                    0 U l         S U l        Xl        [        R                  " SS5      U l        [        R                  " 5       U l        S U l	        g )Nb   )
storage_process_world_sizer   Value_run	threadingLock_lock_current_barrier)r   
world_sizes     r   r   TCPStore.__init__2   s@    %#))#q1	^^%
 $r
   c                <    [         (       d  U R                  5         g g r   )r   stopr   s    r   __del__TCPStore.__del__;   s    zIIK r
   c                    Xl         g r   )r7   )r   processs     r   _set_processTCPStore._set_process?   s    r
   c                   U   UR                  [        [        R                  5      5      n[	        U5      S:  a  [        R                  R                  U5      nUR                  S:  a  [        S5      e[        UR                  5      S UR                   n[        R                  " UR                  X@5      nUb  UR                  UR                  5       5        S S S 5        g ! , (       d  f       g = f)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_mrR   rs         r   _process_requestTCPStore._process_requestB   s    #==
0C0C)DEL< 1$%..??M??S($%ABB!(..12B8??C"11(//5O=$$QUUW- XXs   CC##
C1c                x   [         R                   " [         R                  [         R                  5       nUR                  [         R                  [         R
                  S5        UR                  X45        UR                  5         UR                  S5        U R                  R                  S:X  a`   UR                  5       u  pE[        R                  " U R                  U4SS9nUR!                  5         U R                  R                  S:X  a  M`  S S S 5        g ! [         a     M  f = f! , (       d  f       g = f)Nr5         ?T)targetr   daemon)socketAF_INETSOCK_STREAM
setsockopt
SOL_SOCKETSO_REUSEADDRbindlisten
settimeoutr:   rR   acceptTimeoutErrorr;   Threadr[   start)r   hostportsrW   addrts          r   _server_loopTCPStore._server_loopO   s     ]]6>>6+=+=>!LL**F,?,?CFFD< HHJLL))//Q&%&XXZNH $$00"T3 	 ))//Q& ?> $  ?>s1   A=D+2DAD+
D($D+'D((D++
D9c                Z    [        U R                  X4S9nUR                  5         X0l        g )N)r_   r   )r   rs   rm   r7   )r   rn   ro   ps       r   r   TCPStore.runb   s'    !$$D<9		r
   c                6   [         (       a  g U R                  bo  U R                  R                  5          SU R                  l        S S S 5        U R                  R                  5       (       a  U R                  R                  5         g g g ! , (       d  f       NJ= f)Nr   )r   r7   r:   get_lockrR   is_aliver%   rC   s    r   rB   TCPStore.stopi   sh    :==$##%"#		 &}}%%''""$ ( %%%s   B


B)r>   r=   r7   r:   r8   r6   N)r*   r+   r,   r-   r   rD   rH   r[   rs   _DEFAULT_HOST_DEFAULT_PORTr   rB   r.   r	   r
   r   r1   r1   /   s,    % .& %= %r
   r1   c                  B    \ rS rSrSrSr\\4S jrS r	S r
S rS rS	rg
)TCPStoreProxys   2   r^   c                    Xl         X l        g r   rn   ro   )r   rn   ro   s      r   r   TCPStoreProxy.__init__x   s    		r
   c                r   [        [        R                  5       GHF  n [        R                  " [        R                  [        R
                  5       nUR                  U R                  U R                  45        UR                  UR                  5       5        UR                  [        [        R                  5      5      n[        U5      S:  a  [        R                  R!                  U5      n[#        UR$                  5      S UR&                   nUR(                  S:X  a  UR+                  U5      sS S S 5        s  $ [-        UR/                  S5      5      e S S S 5        GMI     [-        S5      e! , (       d  f       GMf  = f! [0         a)    [2        R4                  " [        R6                  5         GM  f = f)Nr   zutf-8zTCPStore is not available)ranger   MAX_NUM_RETRIESra   rb   rc   connectrn   ro   rU   rV   r'   r   r   result_action_trM   rN   rQ   rR   rO   statusdecode_resultRuntimeErrordecodeConnectionRefusedErrortimesleepDELAY_FOR_RETRY)r   rT   irp   result_bytesresultrR   s          r   
_send_recvTCPStoreProxy._send_recv|   sD    }445A:]]6>>63E3EF!IItyy$))45IIfjjl+#$66&"22+4 $5L<(1,!+!;!;!L!L("* )&,, 7 G!==A-#)#7#7#> GF #/u||G/D"EE - GF 6$ 677! GF * :

=8899:s<   3FCE01	F=E0F0
F 	:F F.F65F6c                L    U R                  [        R                  " U5      5      $ r   )r   r   Get)r   keys     r   __getitem__TCPStoreProxy.__getitem__   s    ~11#677r
   c                N    U R                  [        R                  " X5      5        g r   )r   r   Set)r   r   rR   s      r   __setitem__TCPStoreProxy.__setitem__   s    **367r
   c                L    U R                  [        R                  " 5       5        g r   )r   r   BarrierrC   s    r   barrierTCPStoreProxy.barrier   s    ..01r
   r   N)r*   r+   r,   r-   r   r   r|   r}   r   r   r   r   r   r.   r	   r
   r   r   r   s   s*    OO) 8.882r
   r   )
__future__r   atexitctypesr   r   r;   ra   r   cupyx.distributedr   r   r|   r}   r   registerr   Processr   r1   r   r	   r
   r   <module>r      sr    "       ( , 
  
 O33  *A% A%H(2 (2r
   