+
    Bi                        ^ RI Ht ]P                  ! R4      t^ RIt^ RIt^ RIt^ RIt^ RI	H
t
 ^ RIHt ^ RI	Ht ]P                  ! RR7        ! R	 R
4      t]P!                  4        U Uu/ uF  w  rWP"                  P$                  bK  	  upp t]P(                  ! ]]P*                  ]R7      w  tt ! R R4      t]P!                  4        U Uu/ uF  w  rWP"                  P2                  bK  	  upp t]P(                  ! ]]]R7      w  tt ! R R4      t]P(                  ! ]]R7      w  ttR t ]!R8X  d   ]PD                  ! 4        R# R# u upp i u upp i )    )util	importlibN)support)threading_helper)
lock_testsT)modulec                   `   a  ] tR t^t o ]! R 4      tRtRtRtRt	Rt
RtRtRtRtRtR tRtV tR# )ModuleLockAsRLockTestsc                $    V P                  R 4      # )	some_lockLockType)clss   &5/usr/lib/python3.14/test/test_importlib/test_locks.py<lambda>ModuleLockAsRLockTests.<lambda>   s    s||K'@    Nc                    \         P                  4        F'  pVP                  P                  P	                  4        K)  	  R # N)initvalues
_bootstrap_blocking_onclear)self	splitinits   & r   tearDownModuleLockAsRLockTests.tearDown'   s*    I  --335 'r    )__name__
__module____qualname____firstlineno__classmethodlocktypetest__is_ownedtest_try_acquiretest_try_acquire_contended	test_withtest_timeouttest_release_save_unacquiredtest_recursion_count	test_reprtest_locked_reprtest_repr_countr   __static_attributes____classdictcell____classdict__s   @r   r
   r
      sS     @AH N!%IL#' IO6 6r   r
   r   c                   >   a  ] tR t^5t o R tR tR tR tR tRt	V t
R# )DeadlockAvoidanceTestsc                     \         P                  ! 4       V n        \        P                  ! R 4       R#   \
         d    RT n         R# i ; i)gư>N)sysgetswitchintervalold_switchintervalr   setswitchintervalAttributeErrorr   s   &r   setUpDeadlockAvoidanceTests.setUp7   s=    	+&)&;&;&=D#%%h/ 	+&*D#	+s   04 A
	A
c                f    V P                   e#   \        P                  ! V P                   4       R # R # r   )r9   r7   r:   r<   s   &r   r   DeadlockAvoidanceTests.tearDown>   s'    "".!!$"9"9: /r   c                  a aaa	a
 ^
p\        V4       Uu. uF  pS P                  \        V4      4      NK  	  pp\        V4       Uu. uF!  q4V,          WC^,           V,          ,          3NK#  	  upo	V'       d   TpM	V^,
          p\        P                  ! V4      o. o
V 3R loVVV	V
3R lp\
        P                  ! We4      ;_uu_ 4         RRR4       S P                  \        S
4      V4       S
# u upi u upi   + '       g   i     L7; i)
   c                Z   <  V P                  4        R#   SP                   d     R# i ; i)zCTry to acquire the lock. Return True on success,
False on deadlock.TF)acquireDeadlockError)lockr   s   &r   _acquireDDeadlockAvoidanceTests.run_deadlock_avoidance_test.<locals>._acquireM   s0      %% s    **c                     < SP                  4       w  rS! V 4      pSP                  4        S! V4      pSP                  W#34       V'       d   VP                  4        V'       d   V P                  4        R # R # r   )popwaitappendrelease)abrarbrG   barrierpairsresultss       r   f=DeadlockAvoidanceTests.run_deadlock_avoidance_test.<locals>.fW   sV    99;DA!BLLN!BNNB8$				 r   N)	ranger   str	threadingBarrierr   BunchassertEquallen)r   create_deadlockNLOCKSilocksNTHREADSrU   rG   rR   rS   rT   s   f&     @@@@r   run_deadlock_avoidance_test2DeadlockAvoidanceTests.run_deadlock_avoidance_testB   s    05f>1s1v&>:?-H-Q(EQ3,/0-HHzH##H-			 		 a** +Wx0A ?H8 +*s   #C1'C6
C;;D	c                    V P                  R 4      pVP                  R4      pV P                  V^4       V P                  VP                  R4      \	        V4      V,
          4       R# )TNTFTT)rc   countassertGreaterEqualr\   r]   )r   rT   nb_deadlockss   &  r   test_deadlock$DeadlockAvoidanceTests.test_deadlockf   sT    2248 }}]3a0|4c'l\6QRr   c                    V P                  R 4      pV P                  VP                  R4      ^ 4       V P                  VP                  R4      \        V4      4       R# )FNrf   rg   )rc   r\   rh   r]   )r   rT   s   & r   test_no_deadlock'DeadlockAvoidanceTests.test_no_deadlocko   sH    2259}5q9|4c'lCr   )r9   N)r    r!   r"   r#   r=   r   rc   rk   rn   r0   r1   r2   s   @r   r5   r5   5   s'     +;"HSD Dr   r5   )r   rE   c                   <   a  ] tR t^t o ]R 4       tR tR tRtV t	R# )LifetimeTestsc                .    V P                   P                  # r   )r   r   r<   s   &r   	bootstrapLifetimeTests.bootstrap   s    yy###r   c                   R pV P                  WP                  P                  4       V P                  P                  V4      pV P	                  WP                  P                  4       \
        P                  ! V4      p?\        P                  ! 4        V P                  WP                  P                  4       V P                  V! 4       4       R# )xyzzyN)
assertNotInrs   _module_locks_get_module_lockassertInweakrefrefr   
gc_collectassertIsNone)r   namerF   wrs   &   r   test_lock_lifetime LifetimeTests.test_lock_lifetime   s    ~~;;<~~..t4dNN889[[~~;;<"$r   c                    \         P                  ! 4        V P                  ^ \        V P                  P
                  4      V P                  P
                  4       R# )r   N)r   r}   r\   r]   rs   rx   r<   s   &r   test_all_locksLifetimeTests.test_all_locks   s<    C < <=55	7r   r   N)
r    r!   r"   r#   propertyrs   r   r   r0   r1   r2   s   @r   rq   rq      s&     $ $	 7 7r   rq   )r   c                  |    \         P                  ! 4       p \        P                  ! \         P                  .V O5!   R # r   )r   threading_setupunittestaddModuleCleanupthreading_cleanup)thread_infos    r   setUpModuler      s*    "224K.@@O;Or   __main__)#test.test_importlibr   	test_utilimport_importlibr   r7   rY   r   r{   testr   test.supportr   r   requires_working_threadingr
   itemsr   _ModuleLock
LOCK_TYPES	test_both
RLockTestsFrozen_ModuleLockAsRLockTestsSource_ModuleLockAsRLockTestsr5   _DeadlockErrorDEADLOCK_ERRORSFrozen_DeadlockAvoidanceTestsSource_DeadlockAvoidanceTestsrq   Frozen_LifetimeTestsSource_LifetimeTestsr   r    main)kindr   s   00r   <module>r      s^   1!!+. 
     )   + +4 86 66 &*ZZ\3%1/$ ((444%13

 /1F1F",.
=D =DB +/**,8*6t --<<<*68
 /",'687 72 T2P
 zMMO i3R8s   +!E!E