
    i-                     
   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J	r	J
r
  S SKr S SKJr  Sr\" \S5      rS rS	 r\	" S
5      \" S5       " S S\
5      5       5       r\S:X  a  \R,                  " 5         gg! \ a    Sr NSf = f)    N)cuda)skip_on_cudasimskip_under_cuda_memcheckCUDATestCase)ThreadPoolExecutorTFget_contextc                    ^ [         R                  S 5       mU4S jn [        S5       Vs/ s H-  n[         R                  " [        R
                  " S5      5      PM/     nn[        R
                  " S5      nUS==   S-  ss'   [        SS9 nUR                  X5       H"  n[        R                  R                  XS5        M$     S S S 5        g s  snf ! , (       d  f       g = f)Nc                     U S==   S-  ss'   g )Nr       )xs    d/var/www/html/trading/venv/lib/python3.13/site-packages/numba/cuda/tests/cudapy/test_multithreads.pyfoo'check_concurrent_compiling.<locals>.foo   s    	!	    c                    > TS   " U 5        U $ )N)r   r   r   )r   r   s    r   use_foo+check_concurrent_compiling.<locals>.use_foo   s    D	!r   
   r   r      )max_workers)
r   jitrange	to_devicenparanger   maptestingassert_equal)r   iarraysexpectedearyr   s         @r   check_concurrent_compilingr%      s    	XX  6;2Y?YdnnRYYr]+YF?yy}HQK1K		*a55)CJJ##C2 * 
+	* @ 
+	*s   4C8C
C!c                      [        5         U R                  S 5        g !   [        R                  " 5       nU R                  SR	                  SSU/5      5         g = f)N
 zP================================================================================)r%   put	traceback
format_excjoin)qmsgs     r   spawn_process_entryr/   &   sK    "$ 	
d	.""$	diiXs+,-s	   
 :AzHangs cuda-memcheckzdisabled for cudasimc                       \ rS rSr\R
                  " \(       + S5      S 5       r\R
                  " \(       + S5      S 5       r	S r
S rSrg	)
TestMultiThreadCompiling1   zno concurrent.futuresc                     [        5         g N)r%   )selfs    r   test_concurrent_compiling2TestMultiThreadCompiling.test_concurrent_compiling5   s    "$r   zno multiprocessing.get_contextc                    [         R                  " 5         [        R                  " S5      nUR	                  5       nUR                  [        U4S9nUR                  5          UR                  5       nUR                  5         Ub  [        U5      eU R                  UR                  SS5        g ! UR                  5         f = f)Nspawntargetargsr   ztest failed in child process)r   get_current_devicemultiprocessingr   QueueProcessr/   startgetr,   AssertionErrorassertEqualexitcode)r5   ctxr-   perrs        r   !test_spawn_concurrent_compilation:TestMultiThreadCompiling.test_spawn_concurrent_compilation9   s     	!))'2IIKKK2!K>			%%'CFFH? %%Q(FG FFHs   "B. .C c                 :   S n[         R                  " SS5      n[         R                  " U5      n[        R                  " U5      n[
        R                  " XU/S9nUR                  5         UR                  5         [         R                  R                  X#5        g )Nc                 *    U R                  5       US S & g r4   )copy_to_host)arrouts     r   d2hITestMultiThreadCompiling.test_invalid_context_error_with_d2h.<locals>.d2hL   s    %%'CFr   r   r   r:   )r   r   
zeros_liker   r   	threadingThreadrA   r,   r   r   )r5   rP   rN   rO   darrths         r   #test_invalid_context_error_with_d2h<TestMultiThreadCompiling.test_invalid_context_error_with_d2hK   sl    	( ii1ommC ~~c"Sc{;


	


)r   c                    S n[         R                  " S5      n[        R                  " U5      n[        R                  " [         R                  " UR
                  UR                  S95      n[        R                  " XU/S9nUR                  5         UR                  5         [         R                  R                  UR                  5       U5        g )Nc                 &    U R                  U5        g r4   )copy_to_device)dstsrcs     r   d2dITestMultiThreadCompiling.test_invalid_context_error_with_d2d.<locals>.d2dX   s    s#r   d   )dtyper:   )r   r   r   r   zerosshapera   rS   rT   rA   r,   r   r   rM   )r5   r^   rN   commonrU   rV   s         r   #test_invalid_context_error_with_d2d<TestMultiThreadCompiling.test_invalid_context_error_with_d2dW   s    	$ iin$~~bhhv||6<<HISf~>


	


 1 1 3S9r   r   N)__name__
__module____qualname____firstlineno__unittestskipIfhas_concurrent_futuresr6   has_mp_get_contextrI   rW   re   __static_attributes__r   r   r   r1   r1   1   sX     __//1HI% J% __++-MNH OH"
*
:r   r1   __main__)r*   rS   r>   numpyr   numbar   numba.cuda.testingr   r   r   rk   concurrent.futuresr   rm   ImportErrorhasattrrn   r%   r/   r1   rg   mainr   r   r   <module>rx      s        . . "5 " _m< 3" /0'(.:| .: ) 1.:b zMMO q  #"#s   A7 7BB