+
    Bim                         ^ RI t ^ RIt^ RIHt ^ RI Ht ^ RIt^ RIHt  ! R R4      t]P                  ! 4        ! R R]4      4       t	]
R	8X  d   ] P                  ! 4        R# R# )
    N)Thread)TestCase)threading_helperc                       ] tR t^tRtR# )MyObj N)__name__
__module____qualname____firstlineno____static_attributes__r       7/usr/lib/python3.14/test/test_free_threading/test_gc.pyr   r      s    r   r   c                   ,   a  ] tR t^t o R tR tRtV tR# )TestGCc                :  a \         P                  ! 4       oV3R  lpV3R lp\        VR7      .p\        ^4       Uu. uF  p\        VR7      NK  	  pp\        P
                  ! W5,           4      ;_uu_ 4         RRR4       R# u upi   + '       g   i     R# ; i)c                  v   < \        ^d4       F  p \        P                  ! 4       pK  	  SP                  4        R# d   N)rangegcget_objectsset)ioevents     r   	gc_thread*TestGC.test_get_objects.<locals>.gc_thread   s&    3ZNN$  IIKr   c                     < SP                  4       '       g+   \        4       p \        4       p\        4       p\        4       pK@  R # )N)is_setr   )o1o2o3o4r   s       r   mutator_thread/TestGC.test_get_objects.<locals>.mutator_thread   s/    llnnWWWW	 %r   targetN)	threadingEventr   r   r   start_threads)selfr   r%   gcs_mutatorsr   s   &     @r   test_get_objectsTestGC.test_get_objects   ss    !	
	 Y'(;@8D8aF.18D++CN;; <; E;;;s   B8B		B	c                  aa	a
 ^p^p\         P                  ! W,           4      o\         P                  ! 4       o	\        4       o
VV	V
3R lpVV	V
3R lp\	        V4       Uu. uF  p\        VR7      NK  	  pp\	        V4       Uu. uF  p\        VR7      NK  	  pp\        P                  ! Wg,           4      ;_uu_ 4         RRR4       R# u upi u upi   + '       g   i     R# ; i)   c                     < SP                  4        \        ^d4       F  p \        P                  ! S4      pK  	  SP	                  4        R# r   )waitr   r   get_referrersr   )r   r   br   objs     r   r   ,TestGC.test_get_referrers.<locals>.gc_thread.   s3    FFH3Z$$S)  IIKr   c                  x   < SP                  4        SP                  4       '       g   R S/p R S/pR S/pR S/pK(  R# )keyN)r5   r    )d1d2d3d4r7   r   r8   s       r   r%   1TestGC.test_get_referrers.<locals>.mutator_thread4   s@    FFHllnnc^c^c^c^	 %r   r'   N)r)   Barrierr*   r   r   r   r   r+   )r,   NUM_GCNUM_MUTATORSr   r%   r.   r-   r/   r7   r   r8   s   &       @@@r   test_get_referrersTestGC.test_get_referrers%   s    f34!g		$ 27v?AvY'?;@;NO;NaF.1;NO++CN;; <; @O;;;s    CC?CC&	r   N)r	   r
   r   r   r0   rD   r   __classdictcell__)__classdict__s   @r   r   r      s     ( r   r   __main__)unittestr)   r   r   r   test.supportr   r   requires_working_threadingr   r	   mainr   r   r   <module>rM      s^        	 )	 	 ,,./X / //d zMMO r   