+
    :i[                     (   ^ RI HtHtHt ^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t
^ RIHtHtHtHtHtHtHt ^ RIHt ^ RIHt ^ RIHtHtHt ^ RIHt  ! R R	]4      t ! R
 R]]4      t]P?                  4        ] R8X  d   ]PB                  ! 4        R# R# )    )print_functionabsolute_importdivisionN)njitset_num_threadsget_num_threadsprangeconfigthreading_layerguvectorize)get_thread_id)TypingError)TestCaseskip_parfors_unsupportedtag)TestInSubprocessc                     a  ] tR t^t o RtR tR t]R 4       t]]	P                  ! ]P                  ^8  R4      R 4       4       t]]	P                  ! ]P                  ^8  R4      R 4       4       t]]	P                  ! ]P                  ^8  R4      R 4       4       t]]	P                  ! ]P                  ^8  R4      R	 4       4       t]]	P                  ! ]P                  ^8  R4      R
 4       4       t]]	P                  ! ]P                  ^8  R4      R 4       4       t]]	P                  ! ]P                  ^8  R4      R 4       4       t]]	P                  ! ]P                  ^8  R4      R 4       4       t]]	P                  ! ]P                  ^8  R4      R 4       4       t]]	P                  ! ]P                  ^8  R4      R 4       4       t]]	P                  ! ]P                  ^8  R4      R 4       4       t]]	P                  ! ]P                  ^8  R4      ]	P                  ! ]P2                  P5                  R4      '       * R4      R 4       4       4       tR t]R 4       tRtV tR# )TestNumThreadsFc                8    \        \        P                  4       R # Nr   r
   NUMBA_NUM_THREADSselfs   &Z/var/www/html/photoedit/myenv/lib/python3.14/site-packages/numba/tests/test_num_threads.pysetUpTestNumThreads.setUp   s     	001    c                    \        4       R 8X  d*   V P                  \        P                  ! W!8*  4      4       R# \        4       R9   d"   \        P                  P                  W4       R# Q R4       h)tbbunreachableN)omp	workqueue)r   
assertTruenpalltestingassert_equal)r   expectedresults   &&&r   
check_maskTestNumThreads.check_mask   sO     %OOBFF6#567"66JJ##H5#m#1r   c                *   \         R  4       pRpV\        3VP                  \        33 FS  w  r4V P	                  V4      ;_uu_ 4       pV! 4        RRR4       V P                  V\        XP                  4      4       KU  	  R#   + '       g   i     L;; i)c                      \        R 4       R# )
wrong_typeN)r    r   r   foo5TestNumThreads.test_set_num_threads_type.<locals>.foo)   s
    L)r   z2The number of threads specified must be an integerN)r   r   py_func	TypeErrorassertRaisesassertInstr	exception)r   r1   r)   fnerrtyraisess   &     r   test_set_num_threads_type(TestNumThreads.test_set_num_threads_type&   s{     
	* 
	* H,s{{I.FGIB""5))V *MM(C(8(8$9: H))s   BBzNot enough CPU coresc                   \         P                  pV P                  \        4       V4       \	        ^4       V P                  \        4       ^4       \	        V4       V P                  \        4       V4       V P                  \        4      ;_uu_ 4        \	        ^ 4       RRR4       V P                  \        4      ;_uu_ 4        \	        V^,           4       RRR4       R#   + '       g   i     LJ; i  + '       g   i     R# ; i)   N)r
   r   assertEqualr   r   r5   
ValueError)r   max_threadss   & r   _test_set_num_threads_basic*TestNumThreads._test_set_num_threads_basic3   s     ..*K8*A.$*K8z**A + z**K!O, +* +* +**s   C C3 C0	3D	c                l   \         P                  p\        R  4       pV P                  V! 4       V4       \	        ^4       V P                  V! 4       ^4       \	        V4       V P                  V! 4       V4       \        R 4       pV P                  V! ^4      ^4       V P                  V! V4      V4       R# )c                      \        4       # r   r   r0   r   r   get_n=TestNumThreads._test_set_num_threads_basic_jit.<locals>.get_nI       "$$r   c                 ,    \        V 4       \        4       # r   r   r   ns   &r   	set_get_nATestNumThreads._test_set_num_threads_basic_jit.<locals>.set_get_nS   s    A"$$r   N)r
   r   r   r@   r   )r   rB   rH   rO   s   &   r   _test_set_num_threads_basic_jit.TestNumThreads._test_set_num_threads_basic_jitD   s     ..		% 
	% 	+.!$$+.		% 
	% 	1q);/=r   c                   \         P                  p\        R .RRRR7      R 4       p\        P                  ! R	\        P
                  R7      pV! V4       \        P                  P                  W14       \        ^4       \        P                  ! R	\        P
                  R7      pV! V4       \        P                  P                  V^4       \        V4       \        P                  ! R	\        P
                  R7      pV! V4       \        P                  P                  W14       \        R .RRRR7      R 4       p\        P                  ! R	\        P
                  R7      p^V^ &   V! V4       \        P                  P                  V^4       \        P                  ! R	\        P
                  R7      pW^ &   V! V4       \        P                  P                  W14       R# )
void(int64[:])(n)Tparallelnopythontargetc                      \        4       V R &   R# NNNNrG   xs   &r   rH   ETestNumThreads._test_set_num_threads_basic_guvectorize.<locals>.get_n`       
 #$AaDr   dtypec                 D    \        V ^ ,          4       \        4       V R&   R# r   r\   NrL   rM   s   &r   rO   ITestNumThreads._test_set_num_threads_basic_guvectorize.<locals>.set_get_ns       
 AaD!"$AaDr   Ni@KL )	r
   r   r   r%   zerosint64r'   r(   r   )r   rB   rH   r^   rO   s   &    r   '_test_set_num_threads_basic_guvectorize6TestNumThreads._test_set_num_threads_basic_guvectorize[   sd    ..	&'"&
(	%	
(	% HHZrxx0a


/HHZrxx0a


1%$HHZrxx0a


/	&'"&
(	%	
(	% HHZrxx0!!


1%HHZrxx0!!


/r   c                V   \        ^4       \        RR7      R 4       p\        R.RRRR7      R 4       pV! 4       p\        P                  P                  V^4       \        P                  ! R\        P                  R	7      pV! V4       \        P                  P                  V^4       R
# )r?   TrV   c                  t    ^p \         P                  ! V 34      p\        V 4       F  p\        4       W&   K  	  V#    )r%   emptyr	   r   r^   bufis      r   	test_funcCTestNumThreads._test_set_num_threads_outside_jit.<locals>.test_func   s3    A((A4.CAY(* Jr   rT   rU   rV   rW   c                      \        4       V R &   R# r[   rG   r]   s   &r   test_gufuncETestNumThreads._test_set_num_threads_outside_jit.<locals>.test_gufunc   r`   r   ra   Nrg   )r   r   r   r%   r'   r(   rh   ri   )r   ru   rx   outr^   s   &    r   !_test_set_num_threads_outside_jit0TestNumThreads._test_set_num_threads_outside_jit   s    
 		t		 
	 
&'"&
(	%	
(	% k


Q'HHZrxx0A


1%r   c                |    \        R R7      R 4       p^pV! V4      p\        P                  P                  W24       R# )Trm   c                     ^p\         P                  ! V34      p\        V 4       \        V4       F  p\	        4       W#&   K  	  V# ro   )r%   rq   r   r	   r   )nthreadsr^   rs   rt   s   &   r   ru   BTestNumThreads._test_set_num_threads_inside_jit.<locals>.test_func   s;    A((A4.CH%AY(* Jr   N)r   r%   r'   r(   )r   ru   maskrz   s   &   r    _test_set_num_threads_inside_jit/TestNumThreads._test_set_num_threads_inside_jit   s=     
t		 
	 o


*r   c                    \        R .RRRR7      R 4       p\        P                  ! R\        P                  R7      p^pW2^ &   V! V4       \        P                  P                  W#4       R# )	rT   rU   TrV   rW   c                 D    \        V ^ ,          4       \        4       V R&   R# rd   rL   r]   s   &r   ru   JTestNumThreads._test_set_num_threads_inside_guvectorize.<locals>.test_func   rf   r   ra   Nrg   )r   r%   rh   ri   r'   r(   )r   ru   r^   r   s   &   r   (_test_set_num_threads_inside_guvectorize7TestNumThreads._test_set_num_threads_inside_guvectorize   se     
&'"&
(	%	
(	% HHZrxx0!!


(r   c           	     L   \        ^\        ^\        P                  ^,           4      4       F  p\	        V4       \        RR7      R 4       pV! 4       pV P                  W3V4       \        R.RRRR7      R 4       p\        P                  ! RR\        P                  R	7      P                  R4      p\        P                  ! R\        P                  R	7      pV! WS4       V P                  W4       V P                  V\        \        P                  ! V4      4      4       K  	  R
# )r?   Trm   c                      R p \         P                  ! V 34      p\        V 4       F  p\        4       W&   K  	  \	        \         P
                  ! V4      4      \        4       3# rg   )r%   rq   r	   r   lenuniquer   rr   s      r   ru   ITestNumThreads._test_get_num_threads_truth_outside_jit.<locals>.test_func   sH    hhtnA*_CF #299S>*O,===r   void(int64[:], int64[:])(n), (m)rV   rW   c                 :    \        4       V R &   \        4       V^ &   R# r[   )r   r   )r^   rz   s   &&r   rx   KTestNumThreads._test_get_num_threads_truth_outside_jit.<locals>.test_gufunc   s    
 %!(*Ar   ra   Nrg   d   iP     )rangeminr
   r   r   r   r+   r   r%   fullri   reshaperh   r   r   )r   r   ru   rz   rx   r^   s   &     r   '_test_get_num_threads_truth_outside_jit6TestNumThreads._test_get_num_threads_truth_outside_jit   s     !SF$<$<q$@ABDD! 4 > !> +COOTL#.45#"& *,+	,+
 
Bbhh7??MA((4rxx0COOD&OOD#biil"34; Cr   c           	     H  a \        ^\        ^\        P                  ^,           4      4       F  o\	        RR7      V3R l4       pV! 4       pV P                  SS3V4       \        R.RRRR7      V3R l4       p\        P                  ! RR\        P                  R	7      P                  R4      p\        P                  ! R\        P                  R	7      pV! WB4       V P                  SV4       V P                  S\        \        P                  ! V4      4      4       K  	  R
# )r?   Trm   c                     < \        S4       R p \        P                  ! V 34      p\        V 4       F  p\	        4       W&   K  	  \        \        P                  ! V4      4      \        4       3# rg   )r   r%   rq   r	   r   r   r   r   )r^   rs   rt   r   s      r   ru   HTestNumThreads._test_get_num_threads_truth_inside_jit.<locals>.test_func   sQ    %hhtnA*_CF #299S>*O,===r   r   r   rV   rW   c                 R   < \        S4       \        4       V R &   \        4       V^ &   R# r[   )r   r   r   )r^   rz   r   s   &&r   rx   JTestNumThreads._test_get_num_threads_truth_inside_jit.<locals>.test_gufunc   s$    
  %$!(*Ar   ra   Nrg   r   r   r   )r   r   r
   r   r   r+   r   r%   r   ri   r   rh   r   r   )r   ru   rz   rx   r^   r   s   &    @r   &_test_get_num_threads_truth_inside_jit5TestNumThreads._test_get_num_threads_truth_inside_jit   s     !SF$<$<q$@ABD 4 > !> +COOT4L#.45#"& *,+	,+ 
Bbhh7??MA((4rxx0COOD#&OOD#biil"34= Cr   c                V  aaaa \        4       R 8X  d   V P                  R4       \        P                  ^,
          o\        P                  o^\        P                  ,          o\	        RR7      R 4       oVVVV3R lpR
 EF$  pV! V4      pV! S4      w  rEV! SRR7      w  rg\
        P                  P                  Wd4       \
        P                  P                  Wu4       ^\
        P                  ! S4      S,          ,           pVR8X  d   VP                  S^34      p	M\
        P                  ! V4      p	\
        P                  P                  W4       \
        P                  ! SS34      p
\        ^S4       F	  pWVR3&   K  	  \
        P                  P                  W4       EK'  	  R	# )r#   workqueue is not threadsafeTrm   c                 b    V P                   w  r#\        V4       F  p\        4       WV3&   K  	  R # r   )shaper	   r   rs   fidMNrt   s   &&   r   
child_func=TestNumThreads._test_nested_parallelism_1.<locals>.child_func  s)    99DAAY-/F r   c                 T   < V R 8X  d   RVVVV3R llpV# V R8X  d   RVVVV3R llpX# )r   c                 v   < \        R R7      VVVV3R l4       pV'       d   VP                  V 4      # V! V 4      # )Trm   c                    < ^ p\         P                  ! SS34      p\        V 4       \        S4       F>  p^VS,          ,           p\        V4       VS8  d	   S! W$4       V\	        4       ,          pK@  	  W3# r   )r%   rh   r   r	   r   )	r   accrs   rt   
local_maskr   r   r   r   s	   &    r   
_test_funcbTestNumThreads._test_nested_parallelism_1.<locals>.get_test.<locals>.test_func.<locals>._test_func"  sj     hh1v.'1!'A)*QXJ+J7)A~ *3 ;?#44C "+  #xr   )r   r3   )r   r3   r   r   r   r   r   s   && r   ru   NTestNumThreads._test_nested_parallelism_1.<locals>.get_test.<locals>.test_func!  s;    4(( )( )11(;;)(33r   r   c                   <a  V	V
V 3R  lp\         P                  ! SS	3\         P                  R7      p\         P                  ! S^3\         P                  R7      p^\         P                  ! S4      S,          ,           P	                  S^34      pR.pRpV'       g   \        WgRRR7      ! V4      pM\        WgRR7      ! V4      pV! WCV4       WC3# )c                    < \        S4       \        V^ ,          4       V^ ,          S8  d   S! W^ ,          4       V ^ ;;,          \        4       ,          uu&   R# r   NrL   )r   rs   r   r   r   r   s   &&&r   r   r   6  s@    '1'
16%a=1,&sqM:A/"33r   ra   z%void(int64[:], int64[:, :], int64[:])z(p), (n, m), (p)TrV   rW   forceobj)r%   rh   ri   aranger   r   )r   r3   r   rs   r   r   siglayoutr   r   r   r   s   f&      r   ru   r   5  s    4 ((Aq6:C((Aq6:C"#biilT&9"9!B!BAq6!JJBCC/F"%0t8B&DDN&P
 &1:>&@@J&L
s48Or   )Fr0   )	test_typeru   r   r   r   r   s   & r   get_test;TestNumThreads._test_nested_parallelism_1.<locals>.get_test  s:    F"4 4V 1 m+$ $. r   r   )r3   r\   Nr   r   )r   skipTestr
   r   r   r%   r'   r(   r   r   sumrh   r   )r   r   r   ru   got_accgot_arrexp_accexp_arrmath_acc_expmath_accmath_arrrt   r   r   r   r   s   &           @@@@r   _test_nested_parallelism_1)TestNumThreads._test_nested_parallelism_1  sW    +MM78 ''!+$$(((	t		0 
	0
-	 -	^ 1I +I(G(t<GJJ##G5JJ##G5 ryy|d22LM)'//A766,/JJ##H6xxA'H1a[!"A ! JJ##H6) 1r   c                  a	a
a \        4       R 8X  d   V P                  R4       \        P                  ^,           o
^\        P                  ,          ^,           o	V	V
V3R lp\        P                  ^,
          o/ pR F9  pR F0  pVR8X  d
   VR8w  d   K  \	        S4       V! WC4      ! S4      W#V3&   K2  	  K;  	  VR,          pVP                  4        F"  p\        P                  P                  We4       K$  	  \        P                  ! S	S
34      p\        ^\        P                  4       F	  pWVR3&   K  	  \        P                  P                  Wu4       R# )	r#   r   c                   <aa V R 8X  d   \        RR7      pMV R8X  d   \        RR7      pM
V R8X  d   R pXR 4       oVR9   dC   VR 8X  d   \        RR7      oMVR8X  d   \        RR7      oM
VR8X  d   R oSVVVV3R	 l4       pV# VR
8X  d   \        R.RRR R7      oMVR8X  d   \        R.RRR7      oVVVVV3R lpV# )rV   Trm   r   Fnonec                     V # r   r0   r]   s   &r   	child_decNTestNumThreads._test_nested_parallelism_2.<locals>.get_impl.<locals>.child_decx  s    Hr   c                 x    V P                   w  r#\        V4       \        V4       F  p\        4       WV3&   K  	  R # r   )r   r   r	   r   r   s   &&   r   childJTestNumThreads._test_nested_parallelism_2.<locals>.get_impl.<locals>.child{  s1    yy$A"1"3CQK #r   c                     V # r   r0   r]   s   &r   test_decMTestNumThreads._test_nested_parallelism_2.<locals>.get_impl.<locals>.test_dec  s     r   c                    < \         P                  ! SS34      p\        V 4       \        S4       FC  p^VS,          ,           pV\        P
                  8  g   K*  S! W4       \        4       V8X  d   KC  Q h	  V# r   )r%   rh   r   r	   r
   r   r   )r   rs   rt   r   r   r   r   r   s   &   r   ru   NTestNumThreads._test_nested_parallelism_2.<locals>.get_impl.<locals>.test_func  sh    ((Aq6*C#H-#AY%&T\
 &(@(@@!#2#2#4
#BB#B ' Jr   r   zint64[:,:], int64[:]z(n, m), (k)rW   guvectorize-objr   c                    <a  SVV 3R  l4       p\         P                  ! SS3\         P                  R7      p^\         P                  ! S4      S,          ,           P	                  S^34      pV! W#4       V# )c                    < \        S4       V^ ,          \        P                  8  d*   S! W^ ,          4       \        4       V^ ,          8X  g   Q hR# R# r   )r   r
   r   r   )rs   r   r   r   s   &&r   r   bTestNumThreads._test_nested_parallelism_2.<locals>.get_impl.<locals>.test_func.<locals>._test_func  sF    '1 &a=6+C+CC!#!}5#2#4
1#EE#E Dr   ra   )r%   rh   ri   r   r   )	r   r   rs   r   r   r   r   r   r   s	   f   r   ru   r     sd    F F ((Aq6:C"#biilT&9"9!B!BAq6!JJs/Jr   rV   r   r   r   )	
child_typer   r   ru   r   r   r   r   r   s	   &&  @@r   get_impl;TestNumThreads._test_nested_parallelism_2.<locals>.get_implq  s    Z' $/	v% %0	v% 4 4 88
*#T2H&(#U3H&(!  J 1 -*,B+C+842< >H "33*,B+C+84 IH   r   r   r\   N)rV   r   r   r   r   r   )r   r   )r   r   r
   r   r   valuesr%   r'   r(   rh   r   )r   r   
res_arraysr   r   py_arrarrr   rt   r   r   r   s   &        @@@r   _test_nested_parallelism_2)TestNumThreads._test_nested_parallelism_2f  s*    +MM78 $$q((((1,@	D ''!+
<I:
'I,?%4<5++/51
j01	 ;< N+$$&CJJ##C0 ' 88QF#q&223AQTN 4 	

1r   c                  aa	 \        4       R 8X  d   V P                  R4       Ro\        RR7      V3R l4       o	\        RR7      V	3R l4       p^pSV,          pV^,           pV! V4      w  rVV P                  W54       V P	                  WF4       V	3R lpV! V4      w  rVV P                  W54       V P	                  WF4       R# )	r#   r   i@B Trm   c                    < \         P                  ! S4      p^ p\        V 4       \        S4       F  pV^,          p\	        4       W&   K  	  V\         P
                  ! V4      3# r   )r%   rh   r   r	   r   r   )local_nttidr   rt   BIGs   &   r   work7TestNumThreads._test_nested_parallelism_3.<locals>.work  sR    ((3-CCH%C[q& ! 		#&&r   c                    < \        V 4       \        P                  ! V 4      p^ p\        V 4       F)  pS! V ^,           4      w  rE\	        V4      W&   W$,          pK+  	  V\        P
                  ! V4      3# r   )r   r%   rh   r	   r   r   )r   lenstotalrt   my_acctidsr   s   &     r   test_func_jit@TestNumThreads._test_nested_parallelism_3.<locals>.test_func_jit  sd    H%88H%DEH%#HqL1d) & "))D/))r   c                 T  <a  \        R .RRRR7      V V3R l4       p\        P                  ! S ^3\        P                  R7      p\        P                  ! S \        P                  R7      P	                  S ^34      pV! W#4       VP                  4       \        P                  ! V4      3# )zint64[:], int64[:]z(n), (n)TrV   rW   c                 p   < S! S^,           4      w  r#\        V4      V^ &   V ^ ;;,          V,          uu&   R# )r   N)r   )r   r   r   r   r   r   s   &&  r   test_func_guvectorizebTestNumThreads._test_nested_parallelism_3.<locals>.test_guvectorize.<locals>.test_func_guvectorize  s0    
  $HqL1d)QaF"r   ra   )r   r%   rh   ri   r   r   r   )r   r   r   r   r   s   f   r   test_guvectorizeCTestNumThreads._test_nested_parallelism_3.<locals>.test_guvectorize  s    ./#"& *,#	,#
 HHh]"((;E88HBHH5==xmLD!%.99;		$//r   N)r   r   r   r@   r+   )
r   r   NTexpected_accexpected_thread_countr   got_tcr   r   r   s
   &       @@r   _test_nested_parallelism_3)TestNumThreads._test_nested_parallelism_3  s     +MM78 	t		' 
	' 
t		* 
	* Rx "Q'+/-6	0" +2./-6r   linuxz
Linux onlyc                  a \         P                  ! R 4      p\        R 4       oV3R lp^pV P                  S! 4       \        P
                  4       \        V4       V P                  S! 4       V4       VP                  4       pVP                  W$3R7      pVP                  4        VP                  4        V P                  VP                  4       V4       R# )forkc                      \        4       # r   rG   r0   r   r   r1   8TestNumThreads._test_threadmask_across_fork.<locals>.foo  rJ   r   c                 4   < V P                  S! 4       4       R # r   )put)queuer1   s   &r   wrap9TestNumThreads._test_threadmask_across_fork.<locals>.wrap  s    IIcer   )rY   argsN)multiprocessingget_contextr   r@   r
   r   r   QueueProcessstartjoinget)r   forkctxr  r   shared_queuepr1   s   &     @r   _test_threadmask_across_fork+TestNumThreads._test_threadmask_across_fork  s     "--f5		% 
	%	  8 89%}}OO4oO>			))+T2r   c                8    \        \        P                  4       R # r   r   r   s   &r   tearDownTestNumThreads.tearDown$  s    001r   c                z   \        4       p^p\        RR7      R 4       p\        RR7      R 4       pV P                  V^ 4       V! V4      w  rVV P                  V^ 4       \        P                  P                  V^ 4       V! V4      w  rxV P                  V^ 4       \        P                  P                  V^ 4       R# )   Frm   c                     \        4       p\        P                  ! V 4      p\        V 4       F  p\        4       W#&   K  	  W3# r   )r   r%   onesr	   )sizenjit_par_false_tidresrt   s   &   r   	par_falseBTestNumThreads._test_get_thread_id_not_parallel.<locals>.par_false,  s7    !.''$-CD\& "%**r   Tc                     \        4       p\        P                  ! V 4      p\        V 4       F  p\        4       W#&   K  	  W3# r   )r   r%   r!  r   )r"  njit_par_true_tidr$  rt   s   &   r   par_trueATestNumThreads._test_get_thread_id_not_parallel.<locals>.par_true4  s7     -''$-C4[& !$))r   N)r   r   r@   r%   r'   r(   )	r   python_get_thread_idcheck_array_sizer%  r)  r#  njit_par_false_arrr(  njit_par_true_arrs	   &        r    _test_get_thread_id_not_parallel/TestNumThreads._test_get_thread_id_not_parallel'  s    ,	u		+ 
	+ 
t		* 
	* 	-q11:;K1L.+Q/


 2A6/78H/I,*A.


 115r   r0   N) __name__
__module____qualname____firstlineno___numba_parallel_test_r   r+   r   r<   unittestskipIfr
   r   rC   rQ   rj   r{   r   r   r   r   r   r   r  sysplatform
startswithr  r  r/  __static_attributes____classdictcell__)__classdict__s   @r   r   r      s    !2
$ 
; 
; __V--13IJ- K - __V--13IJ> K >* __V--13IJ%0 K %0N __V--13IJ& K &6 __V--13IJ+ K + __V--13IJ) K )  __V--13IJ5 K 5B __V--13IJ 5 K  5H __V--13IJS7 K S7n __V--13IJa2 K a2N __V--13IJ97 K 97v __V--13IJ__0099<H3 I K 3*2 6 6r   r   c                      a ] tR tRt o]tRtR U u. uF  q \        P                  8:  g   K  V NK  	  up t	R t
]R 4       t]R 4       tRtVtR# u up i )	TestNumThreadsBackendsiE  Fc                    \         P                  P                  4       p\        V4      VR &   \        V4      VR&   \        P
                  RRRV.pV P                  WT4      # )NUMBA_THREADING_LAYERr   z-mznumba.runtestsz-v)osenvironcopyr7   r8  
executablerun_cmd)r   testr   num_threadsenv_copycmdlines   &&&&  r   run_test_in_separate_process3TestNumThreadsBackends.run_test_in_separate_processL  sV    ::??$,/,@()(+K(8$%>>4)94F||G..r   c           	        aaa	 V P                   pV P                  P                  pV: R V: R V: 2o	VV	V3R lpVR,          : RS: RS: R2p\        W\	        R4      ! V! V4      4      4       R# ).c                 h  < V P                  SSS4      w  rV P                  '       d   \        R V: RV: R24       \        P                  ! RV4      pVe!   V P                  VP                  ^4      4       V P                  RV4       V P                  RV9  4       V P                  RV9  4       R# )z
stdout:
 "z"
 stderr:
 ""z\.\.\. skipped '(.*?)'NOKFAILERROR)	rK  _DEBUGprintresearchr   groupr6   r$   )r   oembackendinjected_methodrH  s   &   r   test_template5TestNumThreadsBackends._inject.<locals>.test_templateY  s    44_g5@BDA{{{1a@A 		3Q7A}aggaj)MM$"OOF!O,OOG1,-r   :r   NN__threadslong_runningN)r2  _classr1  setattrr   )
clsnamer\  backend_guardrH  themodtheclsr^  injected_testr]  s
   &&f&f    @r   _injectTestNumThreadsBackends._injectS  s]    $$(.=	. /32hhMN#M-$@A	Cr   c           	        V P                   P                  P                  4        Fd  pV P                  P	                  4        FC  w  r#V P
                   F.  pVP                  R 4      '       g   K  V P                  WW44       K0  	  KE  	  Kf  	  R# )_test_N)rc  __dict__rD  backendsitemsrH  r:  rk  )re  rf  r\  rg  rH  s   &    r   generateTestNumThreadsBackends.generatek  sg    JJ'',,.D*-,,*<*<*>&#&??K??844 KK}J $3 +? /r   r0   N)r   r?      r     )r1  r2  r3  r4  r   rc  rT  r
   r   rH  rK  classmethodrk  rr  r;  r<  )rt   r=  s   0@r   r?  r?  E  sl     FF /P.v7O7O2O11.PK/ C C. K KE Qs
   AAr?  __main__)"
__future__r   r   r   r8  rB  rV  r  r6  numpyr%   numbar   r   r   r	   r
   r   r   numba.np.ufunc.parallelr   numba.core.errorsr   numba.tests.supportr   r   r   !numba.tests.test_parallel_backendr   r   r?  rr  r1  mainr0   r   r   <module>r     s    @ @ 
 	 	   1 1 1 1 ) G G >n6X n6b-K-x -K`    !zMMO r   