ó
    „ñ:iã
  ã                   óÄ   • S r SSKrSSKrSSKrSSKJrJrJr  SSK	J
r
Jr  SSKJr  SSKrS rS rS r " S	 S
\R$                  5      r\S:X  a  \R*                  " 5         gg)zJ
Test threadsafety for compiler.
These tests will cause segfault if fail.
é    N)ÚjitÚ	vectorizeÚguvectorize)Útemp_directoryÚoverride_config)Úconfigc                 ó.   • [         R                  " U 5      $ ©N)ÚnpÚones)ÚnÚvs     Ú`/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/numba/tests/test_threadsafety.pyÚfoor      s   € Ü�7Š7�1‹:Ðó    c                 ó
   • X-   $ r
   © )ÚaÚbs     r   Ú	ufunc_foor      s	   € Ø‰5€Lr   c                 ó   • X-   US'   g )Nr   r   )r   r   Úouts      r   Ú
gufunc_foor      s   € Ø‰U€Cˆ‚Fr   c                   óV   • \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rSrg)ÚTestThreadSafetyé   c                 ó   ^• U4S jnU$ )Nc                  ó@   >• [        S0 TD6" [        5      n U " SS5      $ )Né   é
   r   )r   r   )ÚcfuncÚoptionss    €r   ÚrunnerÚ(TestThreadSafety.run_jit.<locals>.runner!   s   ø€ Ü‘N˜'’N¤3Ó'ˆEá˜˜B“<Ðr   r   ©Úselfr"   r#   s    ` r   Úrun_jitÚTestThreadSafety.run_jit    s   ø€ õ	 ð ˆr   c                 ó‚  ^• [        U R                  R                  5      U l        [	        SU R                  5         U4S jn[        S5       Vs/ s H  n[        R                  " US9PM     nnU H  nUR                  5         M     U H  nUR                  5         M     S S S 5        g s  snf ! , (       d  f       g = f)NÚ	CACHE_DIRc                  ód   >• [        S5       H   n [        R                  " T5      nU" 5         M"     g )Nr    )ÚrangeÚrandomÚchoice)Ú_ÚfnÚfnlists     €r   ÚchooserÚ-TestThreadSafety.run_compile.<locals>.chooser*   s$   ø€ Ü˜rž�AÜŸš vÓ.�BÙ–Dò #r   r   )Útarget)
r   Ú	__class__Ú__name__Ú
_cache_dirr   r,   Ú	threadingÚThreadÚstartÚjoin)r&   r1   r2   ÚiÚthsÚths    `    r   Úrun_compileÚTestThreadSafety.run_compile'   s™   ø€ Ü(¨¯©×)@Ñ)@ÓAˆŒÜ˜[¨$¯/©/Õ:õô " !œHó&Ú$�qô ×#Ò#¨7Ô3Ù$ð ð &ã�Ø—‘–
ñ ã�Ø—‘–	ñ ÷ ;Ð:ùò&÷ ;Õ:ús   ¼B0ÁB+Á.4B0Â+B0Â0
B>c                 óB   • U R                  U R                  SS9/5        g ©NT©Únopython©r?   r'   ©r&   s    r   Útest_concurrent_jitÚ$TestThreadSafety.test_concurrent_jit6   s   € Ø×Ñ˜$Ÿ,™,°˜,Ð5Ð6Õ7r   c                 óD   • U R                  U R                  SSS9/5        g ©NT©rD   ÚcacherE   rF   s    r   Útest_concurrent_jit_cacheÚ*TestThreadSafety.test_concurrent_jit_cache9   s    € Ø×Ñ˜$Ÿ,™,°¸D˜,ÐAÐBÕCr   c                 ó   ^• U4S jnU$ )Nc                  ó¼   >• [        S/40 TD6" [        5      n [        R                  R                  S5      R	                  [        R
                  5      =pU " X5      $ )Nz(f4, f4)r    )r   r   r   r-   ÚastypeÚfloat32)r!   r   r   r"   s      €r   r#   Ú.TestThreadSafety.run_vectorize.<locals>.runner=   sI   ø€ Ü˜z˜lÑ6¨gÒ6´yÓAˆEÜ—I‘I×$Ñ$ RÓ(×/Ñ/´·
±
Ó;Ð;ˆAÙ˜“;Ðr   r   r%   s    ` r   Úrun_vectorizeÚTestThreadSafety.run_vectorize<   s   ø€ õ	ð ˆr   c                 óB   • U R                  U R                  SS9/5        g rB   ©r?   rT   rF   s    r   Útest_concurrent_vectorizeÚ*TestThreadSafety.test_concurrent_vectorizeC   s!   € Ø×Ñ˜$×,Ñ,°dÐ,Ð;Ð<Õ=r   c                 óD   • U R                  U R                  SSS9/5        g rJ   rW   rF   s    r   Útest_concurrent_vectorize_cacheÚ0TestThreadSafety.test_concurrent_vectorize_cacheF   s#   € Ø×Ñ˜$×,Ñ,°dÀ$Ð,ÐGÐHÕIr   c                 ó   ^• U4S jnU$ )Nc                  óÂ   >• S/n [        U S40 TD6" [        5      n[        R                  R                  S5      R	                  [        R
                  5      =p#U" X#5      $ )Nz(f4, f4, f4[:])z	(),()->()r    )r   r   r   r-   rQ   rR   )Úsigr!   r   r   r"   s       €r   r#   Ú0TestThreadSafety.run_guvectorize.<locals>.runnerJ   sQ   ø€ Ø$Ð%ˆCÜ  [Ñ<°GÒ<¼ZÓHˆEÜ—I‘I×$Ñ$ RÓ(×/Ñ/´·
±
Ó;Ð;ˆAÙ˜“;Ðr   r   r%   s    ` r   Úrun_guvectorizeÚ TestThreadSafety.run_guvectorizeI   s   ø€ õ	ð
 ˆr   c                 óB   • U R                  U R                  SS9/5        g rB   ©r?   ra   rF   s    r   Útest_concurrent_guvectorizeÚ,TestThreadSafety.test_concurrent_guvectorizeQ   s!   € Ø×Ñ˜$×.Ñ.¸Ð.Ð=Ð>Õ?r   c                 óD   • U R                  U R                  SSS9/5        g rJ   rd   rF   s    r   Ú!test_concurrent_guvectorize_cacheÚ2TestThreadSafety.test_concurrent_guvectorize_cacheT   s#   € Ø×Ñ˜$×.Ñ.¸ÀDÐ.ÐIÐJÕKr   c                 óÔ   • U R                  U R                  SSS9U R                  SS9U R                  SSS9U R                  SS9U R                  SSS9U R                  SS9/5        g )NTrK   rC   )r?   r'   rT   ra   rF   s    r   Útest_concurrent_mix_useÚ(TestThreadSafety.test_concurrent_mix_useW   s{   € Ø×Ñ˜$Ÿ,™,°¸D˜,ÐAØŸ,™,°˜,Ð5Ø×,Ñ,°dÀ$Ð,ÐGØ×,Ñ,°dÐ,Ð;Ø×.Ñ.¸ÀDÐ.ÐIØ×.Ñ.¸Ð.Ð=ð?õ 	@r   )r7   N)r6   Ú
__module__Ú__qualname__Ú__firstlineno__r'   r?   rG   rM   rT   rX   r[   ra   re   rh   rk   Ú__static_attributes__r   r   r   r   r      s>   † òòò8òDòò>òJòò@òLõ@r   r   Ú__main__)Ú__doc__r8   r-   Únumpyr   Únumbar   r   r   Únumba.tests.supportr   r   Ú
numba.corer   Úunittestr   r   r   ÚTestCaser   r6   Úmainr   r   r   Ú<module>rz      s`   ðñó Û ã ç -Ñ -ç ?Ý Û òòòô
?@�x×(Ñ(ô ?@ðD ˆzÓØ‡M‚M…Oð r   