Your IP : 216.73.217.32


Current Path : /opt/alt/python310/lib64/python3.10/test/test_importlib/__pycache__/
Upload File :
Current File : //opt/alt/python310/lib64/python3.10/test/test_importlib/__pycache__/test_locks.cpython-310.pyc

o

0�i��@sddlmZe�d�ZddlZddlZddlZddlZddl	m
Z
ddlmZddl	m
Z
Gdd	�d	�Zd
d�e��D�Zejee
jed�\ZZGd
d�d�Zdd�e��D�Zejeeed�\ZZGdd�d�Zejeed�\ZZdd�Zedkr�e��dSdS)�)�util�	importlib�N)�support)�threading_helper)�
lock_testsc@s8eZdZedd��ZdZdZdZdZdZ	dZ
dZdZdS)�ModuleLockAsRLockTestscCs
|�d�S)NZ	some_lock��LockType)�cls�r�E/opt/alt/python310/lib64/python3.10/test/test_importlib/test_locks.py�<lambda>s
zModuleLockAsRLockTests.<lambda>N)
�__name__�
__module__�__qualname__�classmethodZlocktypeZtest__is_ownedZtest_try_acquireZtest_try_acquire_contendedZ	test_withZtest_timeoutZtest_release_save_unacquiredZ	test_reprZtest_locked_reprrrrr
rsrcC�i|]	\}}||jj�qSr)�
_bootstrap�_ModuleLock��.0�kindZ	splitinitrrr
�
<dictcomp>!��rr	c@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�DeadlockAvoidanceTestscCs6z
t��|_t�d�WdStyd|_YdSw)Ng���ư>)�sys�getswitchinterval�old_switchintervalr�setswitchinterval�AttributeError��selfrrr
�setUp,s
�zDeadlockAvoidanceTests.setUpcCs|jdur
t�|j�dSdS�N)rrrr!rrr
�tearDown3s
�zDeadlockAvoidanceTests.tearDowncs�d��fdd�t��D����fdd�t��D��|r�}n�d}t�|��g��fdd������fdd	�}t�||�����t��|��S)
N�
csg|]	}��t|���qSr)r
�str�r�ir!rr
�
<listcomp>9szFDeadlockAvoidanceTests.run_deadlock_avoidance_test.<locals>.<listcomp>cs$g|]}�|�|d�f�qS)rrr()�NLOCKS�locksrr
r*:s$rcs&z|��WdS�jyYdSw)zOTry to acquire the lock. Return True on success,
            False on deadlock.FT)�acquire�
DeadlockError)�lockr!rr
�_acquireBs
��zDDeadlockAvoidanceTests.run_deadlock_avoidance_test.<locals>._acquirecsR���\}}�|�}����|�}��||f�|r|��|r'|��dSdSr$)�pop�wait�append�release)�a�bZra�rb)r0�barrier�pairs�resultsrr
�fLs�z=DeadlockAvoidanceTests.run_deadlock_avoidance_test.<locals>.f)�range�	threadingZBarrierrZBunchZwait_for_finished�assertEqual�len)r"Zcreate_deadlockZNTHREADSr;r)r+r0r8r,r9r:r"r
�run_deadlock_avoidance_test7s


z2DeadlockAvoidanceTests.run_deadlock_avoidance_testcCs>|�d�}|�d�}|�|d�|�|�d�t|�|�dS)NT�TFr�TT)r@�countZassertGreaterEqualr>r?)r"r:Znb_deadlocksrrr
�
test_deadlockZs

z$DeadlockAvoidanceTests.test_deadlockcCs6|�d�}|�|�d�d�|�|�d�t|��dS)NFrArrB)r@r>rCr?)r"r:rrr
�test_no_deadlockcs
z'DeadlockAvoidanceTests.test_no_deadlockN)rrrr#r%r@rDrErrrr
r*s#	rcCrr)r�_DeadlockErrorrrrr
rir)r
r.c@s(eZdZedd��Zdd�Zdd�ZdS)�
LifetimeTestscCs|jjSr$)�initrr!rrr
�	bootstrapuszLifetimeTests.bootstrapcCsdd}|�||jj�|j�|�}|�||jj�t�|�}~t��|�||jj�|�	|��dS)NZxyzzy)
ZassertNotInrI�
_module_locks�_get_module_lockZassertIn�weakref�refr�
gc_collectZassertIsNone)r"�namer/Zwrrrr
�test_lock_lifetimeys
z LifetimeTests.test_lock_lifetimecCs&t��|�dt|jj�|jj�dS)Nr)rrNr>r?rIrJr!rrr
�test_all_locks�s�zLifetimeTests.test_all_locksN)rrr�propertyrIrPrQrrrr
rGss

rG)rHcCs t��}tjtjg|�R�dSr$)rZthreading_setup�unittestZaddModuleCleanupZthreading_cleanup)�thread_inforrr
�setUpModule�srU�__main__) �rZ	test_utilZimport_importlibrHrr=rSrL�testrZtest.supportrrr�itemsZ
LOCK_TYPESZ	test_bothZ
RLockTestsZFrozen_ModuleLockAsRLockTestsZSource_ModuleLockAsRLockTestsrZDEADLOCK_ERRORSZFrozen_DeadlockAvoidanceTestsZSource_DeadlockAvoidanceTestsrGZFrozen_LifetimeTestsZSource_LifetimeTestsrUrZunittets�mainrrrr
�<module>sH
�
��?�����