+
    Bi                      *   ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHt  ! R R]P                  4      t
R t]P                  ! 4        ! R R]
4      4       t]P                  ! 4        ! R R	]
4      4       t]R
8X  d   ]P                   ! 4        R# R# )    N)threading_helperc                       ] tR t^tRtR# )TestBase N__name__
__module____qualname____firstlineno____static_attributes__r       :/usr/lib/python3.14/test/test_free_threading/test_races.pyr   r      s    r   r   c                 X  aa R o\         P                  ! ^4      oVV3R lp\         P                  ! \        P                  ! W 4      R7      \         P                  ! \        P                  ! W!4      R7      .pV F  pVP                  4        K  	  V F  pVP                  4        K  	  R# )  c                 Z   < SP                  4        \        S4       F
  pV ! 4        K  	  R # N)waitrange)func_ibarrierns   & r   repeatdo_race.<locals>.repeat   s    (BF r   )targetN)	threadingBarrierThread	functoolspartialstartjoin)func1func2r   threadsthreadr   r   s   &&   @@r   do_racer'      s    A"G 		 1 1& @A	 1 1& @AG   r   c                   h   a a ] tR t^&t oR tR tV 3R ltR tR tR t	R t
R tR	 tR
 tRtVtV ;t# )	TestRacesc                N   a R  p\        W4       R oV3R lp\        SV4       R# )c                     a ^ oV3R lp R# )r   c                     < S ^,          o R#    Nr   xs   r   innerBTestRaces.test_racing_cell_set.<locals>.nested_func.<locals>.inner.   s    Qr   Nr   r1   r0   s    @r   nested_func3TestRaces.test_racing_cell_set.<locals>.nested_func+   s    Ar   c                     a ^ oV3R lp V # )r   c                  V   < Sp \         P                  ! ^4      p^VP                  R&   R# )r.   r0   N)sys	_getframef_locals)yframer0   s     r   r1   CTestRaces.test_racing_cell_set.<locals>.nested_func2.<locals>.inner9   s$    a(&'s#r   r   r3   s    @r   nested_func24TestRaces.test_racing_cell_set.<locals>.nested_func26   s    A(
 Lr   c                     < S! 4       p V P                   ^ ,          pVP                  pRVn        \        P                  ! ^ 4       W!n        \        P                  ! ^ 4       R# )r   r   N)__closure__cell_contentstimesleep)r1   cell	old_valuer>   s      r   mutate_func24TestRaces.test_racing_cell_set.<locals>.mutate_func2@   sI     NE$$Q'D**I!%DJJqM!*JJqMr   Nr'   )selfr4   rG   r>   s   &  @r   test_racing_cell_setTestRaces.test_racing_cell_set(   s(    	 	)		 	l+r   c                T   aa R  pV! 4       w  ooV3R lpVV3R lp\        W#4       R# )c                  4   aa ^ o^ oVV3R lp V P                   # )r   c                     < S S,           # r   r   )r0   r;   s   r   r1   GTestRaces.test_racing_cell_cmp_repr.<locals>.nested_func.<locals>.innerT   s    1ur   )rA   )r1   r0   r;   s    @@r   r4   8TestRaces.test_racing_cell_cmp_repr.<locals>.nested_funcP   s     AA $$$r   c                  :   < S ;P                   ^,          un         R# r-   )rB   )cell_as   r   mutate3TestRaces.test_racing_cell_cmp_repr.<locals>.mutate[   s      A% r   c                  (   < SS8H   \        S4      p R # r   )repr)srS   cell_bs    r   access3TestRaces.test_racing_cell_cmp_repr.<locals>.access^   s    fVAr   NrI   )rJ   r4   rT   rZ   rS   rY   s   &   @@r   test_racing_cell_cmp_repr#TestRaces.test_racing_cell_cmp_reprM   s)    	% %	&	
 	r   c                N   <a  ! R  R4      oV3R lpVV3R lp\        W4       R# )c                   2   a a ] tR t^ht oV 3R ltRtVtV ;t# )0TestRaces.test_racing_load_super_attr.<locals>.Cc                ^   <  \         SV `   \         SV `  4        R #   \         d     R # i ; ir   )super__init__RuntimeError)rJ   	__class__s   &r   rc   9TestRaces.test_racing_load_super_attr.<locals>.C.__init__i   s-    G$G$&# s    ,,r   )r   r	   r
   r   rc   r   __classdictcell____classcell__re   __classdict__s   @@r   Cr`   h   s      r   rk   c                     < S ! 4        R # r   r   rk   s   r   rZ   5TestRaces.test_racing_load_super_attr.<locals>.accessp   s    Cr   c                  >  < \         p RR l\        4       R&   \        P                  ! ^ 4       V \        4       R&   \        P                  ! ^ 4       SP                  P
                  ^ ,          pVP                  p^cVn        \        P                  ! ^ 4       W!n        R# )r.   c                     V # r   r   )rX   s   &r   <lambda>GTestRaces.test_racing_load_super_attr.<locals>.mutate.<locals>.<lambda>v   s    Qr   rb   Nr.   )rb   globalsrC   rD   rc   rA   rB   )
real_superrE   
real_classrk   re   s      r   rT   5TestRaces.test_racing_load_super_attr.<locals>.mutates   sn    J!.GIgJJqM!+GIgJJqM::))!,D++J!#DJJqM!+r   NrI   )rJ   rZ   rT   rk   re   s   &  @r   test_racing_load_super_attr%TestRaces.test_racing_load_super_attre   s!    	 			," 	r   c                T   aa ^.o ! R R4      oV3R lpVV3R lp\        W4       R# )r.   c                   &   a  ] tR t^t o R tRtV tR# )(TestRaces.test_racing_to_bool.<locals>.Cc                    R # )Fr   rJ   s   &r   __bool__1TestRaces.test_racing_to_bool.<locals>.C.__bool__   s    r   r   N)r   r	   r
   r   r   r   rg   rj   s   @r   rk   r|      s      r   rk   c                     < S '       d   ^# ^# rs   r   )seqs   r   rZ   -TestRaces.test_racing_to_bool.<locals>.access   s    r   c                  t   < ^.o\         P                  ! ^ 4       S ! 4       o\         P                  ! ^ 4       R# r-   )rC   rD   )rk   r   s   r   rT   -TestRaces.test_racing_to_bool.<locals>.mutate   s'    #CJJqM#CJJqMr   NrI   )rJ   rZ   rT   rk   r   s   &  @@r   test_racing_to_boolTestRaces.test_racing_to_bool   s(    c	 			 	r   c                |   aa  ! R  R4      oS! 4       oV3R lpV3R lp\        W4       V3R lp\        W4       R# )c                       ] tR t^tRR.tRtR# )0TestRaces.test_racing_store_attr_slot.<locals>.Cr0   __dict__r   N)r   r	   r
   r   	__slots__r   r   r   r   rk   r      s    j)Ir   rk   c                  f   < \        ^
4       F
  p V Sn        K  	  \        P                  ! ^ 4       R# )
   N)r   r0   rC   rD   ics    r   set_slot7TestRaces.test_racing_store_attr_slot.<locals>.set_slot   s#    2Y JJqMr   c                     < R  p R p\        W4      Sn        \        P                  ! ^ 4       S=\        P                  ! ^ 4       R# )c                     R # r   r   rJ   r0   s   &&r   set_xITestRaces.test_racing_store_attr_slot.<locals>.change_type.<locals>.set_x       r   c                     R # r   r   r~   s   &r   get_xITestRaces.test_racing_store_attr_slot.<locals>.change_type.<locals>.get_x   r   r   Npropertyr0   rC   rD   )r   r   rk   s     r   change_type:TestRaces.test_racing_store_attr_slot.<locals>.change_type   s6     5(ACJJqMJJqMr   c                  t   < R  S n         \        P                  ! ^ 4       S = \        P                  ! ^ 4       R# )c                     V# r   r   r   s   &&r   rq   QTestRaces.test_racing_store_attr_slot.<locals>.set_getattribute.<locals>.<lambda>   s    r   N)__getattribute__rC   rD   rm   s   r   set_getattribute?TestRaces.test_racing_store_attr_slot.<locals>.set_getattribute   s'    !2AJJqM"JJqMr   NrI   )rJ   r   r   r   rk   r   s   &   @@r   test_racing_store_attr_slot%TestRaces.test_racing_store_attr_slot   s9    	* 	* C	

	 	&	 	+r   c                t   aa  ! R  R4      oS! 4       oV3R lpV! 4        V3R lpV3R lp\        W#4       R# )c                       ] tR t^tRtR# ):TestRaces.test_racing_store_attr_instance_value.<locals>.Cr   Nr   r   r   r   rk   r          r   rk   c                  :   < \        ^d4       F
  p V Sn        K  	  R# d   Nr   r0   r   s    r   	set_valueBTestRaces.test_racing_store_attr_instance_value.<locals>.set_value       3Z  r   c                      < SP                   p R # r   r/   r0   r   s    r   read=TestRaces.test_racing_store_attr_instance_value.<locals>.read       Ar   c                     < \        R  R 4      S n        \        P                  ! ^ 4       S =\        P                  ! ^ 4       R# )c                     R # r   r   r~   s   &r   rq   QTestRaces.test_racing_store_attr_instance_value.<locals>.mutate.<locals>.<lambda>       r   c                     R # r   r   r   s   &&r   rq   r          dr   Nr   rm   s   r   rT   ?TestRaces.test_racing_store_attr_instance_value.<locals>.mutate   .    ,.BCACJJqMJJqMr   NrI   )rJ   r   r   rT   rk   r   s   &   @@r   %test_racing_store_attr_instance_value/TestRaces.test_racing_store_attr_instance_value   s6    	 	 C	 			 	r   c                   aa  ! R  R4      oS! 4       o\        ^4       F  p\        SRV 2R4       K  	  V3R lpV! 4        V3R lpV3R lp\        W44       R# )c                       ] tR t^tRtR# )5TestRaces.test_racing_store_attr_with_hint.<locals>.Cr   Nr   r   r   r   rk   r      r   r   rk   _Nc                  :   < \        ^d4       F
  p V Sn        K  	  R# r   r   r   s    r   r   =TestRaces.test_racing_store_attr_with_hint.<locals>.set_value   r   r   c                      < SP                   p R # r   r/   r   s    r   r   8TestRaces.test_racing_store_attr_with_hint.<locals>.read   r   r   c                     < \        R  R 4      S n        \        P                  ! ^ 4       S =\        P                  ! ^ 4       R# )c                     R # r   r   r~   s   &r   rq   LTestRaces.test_racing_store_attr_with_hint.<locals>.mutate.<locals>.<lambda>   r   r   c                     R # r   r   r   s   &&r   rq   r      r   r   Nr   rm   s   r   rT   :TestRaces.test_racing_store_attr_with_hint.<locals>.mutate   r   r   )r   setattrr'   )rJ   r   r   r   rT   rk   r   s   &    @@r    test_racing_store_attr_with_hint*TestRaces.test_racing_store_attr_with_hint   sV    	 	 CrAA1#w% 	 			 	r   c                J     ! R  R4      pV! 4       p^Vn         VP                  # )c                       ] tR t^tRtR# ))TestRaces.make_shared_key_dict.<locals>.Cr   Nr   r   r   r   rk   r      r   r   rk   )r0   r   )rJ   rk   as   &  r   make_shared_key_dictTestRaces.make_shared_key_dict   s&    	 	 Czzr   c                `   a aa  ! R  R4      oS! 4       oV3R lpVVV 3R lp\        W4       R# )c                       ] tR t^tRtR# )0TestRaces.test_racing_store_attr_dict.<locals>.Cr   Nr   r   r   r   rk   r      r   r   rk   c                  :   < \        ^4       F
  p V Sn        K  	  R# )   Nr   r   s    r   r   8TestRaces.test_racing_store_attr_dict.<locals>.set_value   s    2Y r   c                    < ^Sn         SP                  \        P                  ! S4      4       \	        ^4       F  p \        SRV  2R4       K  	  SP                  \        P                  ! SP                  4      4       SP                  4       Sn        SP                  \        P                  ! SP                  4      4       RSP                  ^&   SP                  \        P                  ! SP                  4      4       S! 4       oR# )r.   r   N)
r0   
assertTrue_testinternalcapihas_inline_valuesr   r   assertFalser   r   has_split_table)r   rk   r   rJ   s    r   rT   5TestRaces.test_racing_store_attr_dict.<locals>.mutate  s    ACOO-??BC2YQqc7D) .@@LM224AJOO-==ajjIJ AJJqM.>>qzzJKAr   NrI   )rJ   r   rT   rk   r   s   f  @@r   test_racing_store_attr_dict%TestRaces.test_racing_store_attr_dict   s*    	 	 C		 		"r   c                (    R  pR p\        W4       R# )c                  $   a  V 3R  lo S ! ^24       R# )c                 B   < V ^ 8  d   S! V ^,
          4      ^,           # ^ # )r   r   )r   counts   &r   r   QTestRaces.test_racing_recursion_limit.<locals>.something_recursive.<locals>.count  s     q5 Q<!++r   Nr   )r   s   @r   something_recursiveBTestRaces.test_racing_recursion_limit.<locals>.something_recursive  s    
 "Ir   c                  X    \        ^d^4       F  p \        P                  ! V 4       K  	  R# r   )r   r8   setrecursionlimit)limits    r   set_recursion_limitBTestRaces.test_racing_recursion_limit.<locals>.set_recursion_limit  s     sC%%e, )r   NrI   )rJ   r   r   s   &  r   test_racing_recursion_limit%TestRaces.test_racing_recursion_limit  s    		- 	#9r   r   )r   r	   r
   r   rK   r\   rx   r   r   r   r   r   r   r   r   rg   rh   ri   s   @@r   r)   r)   &   s?     #,J 0 B .,B04#4: :r   r)   c                   2   a  ] tR tRt o R tR tR tRtV tR# )TestWarningsRacesi"  c                    \         P                  R ,          V n        \         P                  ! 4        \	        ^4       F!  p\         P
                  ! RR\        VR7       K#  	  R pV\         n        R# )NNNignoreznot matched)messagecategorylinenoc                      R # r   r   )argss   *r   showwarning,TestWarningsRaces.setUp.<locals>.showwarning+  s    r   N)warningsfilterssaved_filtersresetwarningsr   filterwarningsWarningr  )rJ   r   r  s   &  r   setUpTestWarningsRaces.setUp$  sQ    %--a0 BiF##Hmg^de  	*r   c                r    V P                   \        P                  R &   \        P                  \        n        R# )r   N)r  r  r  _showwarning_origr  r~   s   &r   tearDownTestWarningsRaces.tearDown/  s&    "00'99r   c                0   a  V 3R  lpR p\        W4       R# )c                     < \         P                  ! ^ 4       RR\        R^ 3.\        P                  R&   \         P                  ! ^ 4       S P
                  \        P                  R&   R# )r   r   Nr   )rC   rD   UserWarningr  r  r  r~   s   r   modify_filtersETestWarningsRaces.test_racing_warnings_filter.<locals>.modify_filters6  sM    JJqM$,dKq#I"JHQJJqM"&"4"4HQr   c                  >    \         P                  ! R \        R7       R# )zdummy message)r   N)r  warnr  r   r   r   emit_warningCTestWarningsRaces.test_racing_warnings_filter.<locals>.emit_warning<  s    MM/K@r   NrI   )rJ   r  r  s   f  r   test_racing_warnings_filter-TestWarningsRaces.test_racing_warnings_filter3  s    	5	A 	-r   )r  N)	r   r	   r
   r   r	  r  r  r   rg   r   s   @r   r   r   "  s     	+:. .r   r   __main__)r8   r   r   rC   unittestr   r  test.supportr   TestCaser   r'   requires_working_threadingr)   r   r   mainr   r   r   <module>r      s    
       )	x   	* ,,.x: x: /x:v ,,.. . /.> zMMO r   