HEX
Server: LiteSpeed
System: Linux server.nevid-deploma.com 4.18.0-553.111.1.lve.el8.x86_64 #1 SMP Fri Mar 13 13:42:17 UTC 2026 x86_64
User: smilepac (1037)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: //opt/cppython/lib/python3.8/test/test_importlib/__pycache__/test_locks.cpython-38.opt-2.pyc
U

/D�g4�@s�ddlmZe�d�ZddlZddlZddlZddlm	Z	ddlm
Z
Gdd�d�Zd	d
�e��D�Z
ejee
je
d�\ZZGdd
�d
�Zdd
�e��D�Zejee
ed�\ZZGdd�d�Zejeed�\ZZe	jdd��Zedkr�e�dS)�)�util�	importlib�N)�support)�
lock_testsc@s8eZdZedd��ZdZdZdZdZdZ	dZ
dZdZdS)�ModuleLockAsRLockTestscCs
|�d�S)NZ	some_lock��LockType)�cls�r�=/opt/cppython/lib/python3.8/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r
srcCsi|]\}}||jj�qSr)�
_bootstrap�_ModuleLock��.0�kindZ	splitinitrrr�
<dictcomp>s�rrc@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�DeadlockAvoidanceTestscCs8zt��|_t�d�Wntk
r2d|_YnXdS)Ng���ư>)�sys�getswitchinterval�old_switchintervalr�setswitchinterval�AttributeError��selfrrr�setUp*s

zDeadlockAvoidanceTests.setUpcCs|jdk	rt�|j�dS�N)rrrrrrr�tearDown1s
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>7szFDeadlockAvoidanceTests.run_deadlock_avoidance_test.<locals>.<listcomp>cs$g|]}�|�|d�f�qS)rrr&)�NLOCKS�locksrrr(8srcs.z|��Wn�jk
r$YdSXdSdS)NFT)�acquire�
DeadlockError)�lockrrr�_acquire@s
zDDeadlockAvoidanceTests.run_deadlock_avoidance_test.<locals>._acquirecsN���\}}�|�}����|�}��||f�|r>|��|rJ|��dSr")�pop�wait�append�release)�a�bZra�rb)r.�barrier�pairs�resultsrr�fJsz=DeadlockAvoidanceTests.run_deadlock_avoidance_test.<locals>.f)�range�	threading�BarrierrZBunchZwait_for_finished�assertEqual�len)r Zcreate_deadlockZNTHREADSr9r)r)r.r6r*r7r8r r�run_deadlock_avoidance_test5s


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

z$DeadlockAvoidanceTests.test_deadlockcCs6|�d�}|�|�d�d�|�|�d�t|��dS)NFr@rrA)r?r=rBr>)r r8rrr�test_no_deadlockas
z'DeadlockAvoidanceTests.test_no_deadlockN)rrrr!r#r?rCrDrrrrr(s
#	rcCsi|]\}}||jj�qSr)r�_DeadlockErrorrrrrrgs�)r	r,c@s(eZdZedd��Zdd�Zdd�ZdS)�
LifetimeTestscCs|jjSr")�initrrrrr�	bootstrapsszLifetimeTests.bootstrapcCsdd}|�||jj�|j�|�}|�||jj�t�|�}~t��|�||jj�|�	|��dS)NZxyzzy)
ZassertNotInrH�
_module_locks�_get_module_lockZassertIn�weakref�refr�
gc_collectZassertIsNone)r �namer-�wrrrr�test_lock_lifetimews
z LifetimeTests.test_lock_lifetimecCs&t��|�dt|jj�|jj�dS)Nr)rrMr=r>rHrIrrrr�test_all_locks�s�zLifetimeTests.test_all_locksN)rrr�propertyrHrPrQrrrrrFqs
rF)rGcCst�tttttt�dSr")rZrun_unittest�Frozen_ModuleLockAsRLockTests�Source_ModuleLockAsRLockTests�Frozen_DeadlockAvoidanceTests�Source_DeadlockAvoidanceTests�Frozen_LifetimeTests�Source_LifetimeTestsrrrr�	test_main�s�rY�__main__)�rZ	test_utilZimport_importlibrGrr;rK�testrrr�itemsZ
LOCK_TYPESZ	test_bothZ
RLockTestsrSrTrZDEADLOCK_ERRORSrUrVrFrWrXZreap_threadsrYrrrrr�<module>sB
�
��?����