Your IP : 216.73.217.32


Current Path : /opt/alt/python39/lib64/python3.9/test/test_importlib/__pycache__/
Upload File :
Current File : //opt/alt/python39/lib64/python3.9/test/test_importlib/__pycache__/test_locks.cpython-39.pyc

a

XC?hi�@s�ddlmZe�d�ZddlZddlZddlZddlZddl	m
Z
ddl	mZGdd�d�Zd	d
�e�
�D�Zejeejed�\ZZGdd
�d
�Zdd
�e�
�D�Zejeeed�\ZZGdd�d�Zejeed�\ZZdd�Zedkr�e��dS)�)�util�	importlib�N)�support)�
lock_testsc@s8eZdZedd��ZdZdZdZdZdZ	dZ
dZdZdS)�ModuleLockAsRLockTestscCs
|�d�S)NZ	some_lock��LockType)�cls�r�C/opt/alt/python39/lib64/python3.9/test/test_importlib/test_locks.py�<lambda>�zModuleLockAsRLockTests.<lambda>N)
�__name__�
__module__�__qualname__�classmethodZlocktypeZtest__is_ownedZtest_try_acquireZtest_try_acquire_contendedZ	test_withZtest_timeoutZtest_release_save_unacquiredZ	test_reprZtest_locked_reprrrrrrsrcCsi|]\}}||jj�qSr)�
_bootstrap�_ModuleLock��.0�kindZ	splitinitrrr�
<dictcomp> s�rrc@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�DeadlockAvoidanceTestscCs6zt��|_t�d�Wnty0d|_Yn0dS)Ng���ư>)�sys�getswitchinterval�old_switchintervalr�setswitchinterval�AttributeError��selfrrr�setUp+s

zDeadlockAvoidanceTests.setUpcCs|jdurt�|j�dS�N)rrrrrrr�tearDown2s
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�irrr�
<listcomp>8rzFDeadlockAvoidanceTests.run_deadlock_avoidance_test.<locals>.<listcomp>cs$g|]}�|�|d�f�qS)rrr&)�NLOCKS�locksrrr(9rrcs,z|��Wn�jy"YdS0dSdS)zOTry to acquire the lock. Return True on success,
            False on deadlock.FTN)�acquire�
DeadlockError)�lockrrr�_acquireAs
zDDeadlockAvoidanceTests.run_deadlock_avoidance_test.<locals>._acquirecsN���\}}�|�}����|�}��||f�|r>|��|rJ|��dSr")�pop�wait�append�release)�a�bZra�rb)r.�barrier�pairs�resultsrr�fKsz=DeadlockAvoidanceTests.run_deadlock_avoidance_test.<locals>.f)�range�	threadingZBarrierrZBunchZwait_for_finished�assertEqual�len)r Zcreate_deadlockZNTHREADSr9r)r)r.r6r*r7r8r r�run_deadlock_avoidance_test6s


z2DeadlockAvoidanceTests.run_deadlock_avoidance_testcCs>|�d�}|�d�}|�|d�|�|�d�t|�|�dS)NT�TFr�TT)r>�countZassertGreaterEqualr<r=)r r8Znb_deadlocksrrr�
test_deadlockYs

z$DeadlockAvoidanceTests.test_deadlockcCs6|�d�}|�|�d�d�|�|�d�t|��dS)NFr?rr@)r>r<rAr=)r r8rrr�test_no_deadlockbs
z'DeadlockAvoidanceTests.test_no_deadlockN)rrrr!r#r>rBrCrrrrr)s
#	rcCsi|]\}}||jj�qSr)r�_DeadlockErrorrrrrrhs�)r	r,c@s(eZdZedd��Zdd�Zdd�ZdS)�
LifetimeTestscCs|jjSr")�initrrrrr�	bootstraptszLifetimeTests.bootstrapcCsdd}|�||jj�|j�|�}|�||jj�t�|�}~t��|�||jj�|�	|��dS)NZxyzzy)
ZassertNotInrG�
_module_locks�_get_module_lockZassertIn�weakref�refr�
gc_collectZassertIsNone)r �namer-Zwrrrr�test_lock_lifetimexs
z LifetimeTests.test_lock_lifetimecCs&t��|�dt|jj�|jj�dS)Nr)rrLr<r=rGrHrrrr�test_all_locks�s�zLifetimeTests.test_all_locksN)rrr�propertyrGrNrOrrrrrErs
rE)rFcCs t��}tjtjg|�R�dSr")rZthreading_setup�unittestZaddModuleCleanupZthreading_cleanup)�thread_inforrr�setUpModule�srS�__main__)�rZ	test_utilZimport_importlibrFrr;rQrJ�testrrr�itemsZ
LOCK_TYPESZ	test_bothZ
RLockTestsZFrozen_ModuleLockAsRLockTestsZSource_ModuleLockAsRLockTestsrZDEADLOCK_ERRORSZFrozen_DeadlockAvoidanceTestsZSource_DeadlockAvoidanceTestsrEZFrozen_LifetimeTestsZSource_LifetimeTestsrSrZunittets�mainrrrr�<module>sB
�
��?����