HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.10/test/test_importlib/__pycache__/test_locks.cpython-310.pyc
o

�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�;/usr/local/lib/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�	threading�BarrierrZBunchZwait_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)rA�countZassertGreaterEqualr?r@)r"r:Znb_deadlocksrrr
�
test_deadlockZs

z$DeadlockAvoidanceTests.test_deadlockcCs6|�d�}|�|�d�d�|�|�d�t|��dS)NFrBrrC)rAr?rDr@)r"r:rrr
�test_no_deadlockcs
z'DeadlockAvoidanceTests.test_no_deadlockN)rrrr#r%rArErFr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)
ZassertNotInrJ�
_module_locks�_get_module_lockZassertIn�weakref�refr�
gc_collectZassertIsNone)r"�namer/�wrrrr
�test_lock_lifetimeys
z LifetimeTests.test_lock_lifetimecCs&t��|�dt|jj�|jj�dS)Nr)rrOr?r@rJrKr!rrr
�test_all_locks�s�zLifetimeTests.test_all_locksN)rrr�propertyrJrRrSrrrr
rHss

rH)rIcCs t��}tjtjg|�R�dSr$)rZthreading_setup�unittestZaddModuleCleanupZthreading_cleanup)�thread_inforrr
�setUpModule�srW�__main__) �rZ	test_utilZimport_importlibrIrr=rUrM�testrZtest.supportrrr�itemsZ
LOCK_TYPESZ	test_bothZ
RLockTestsZFrozen_ModuleLockAsRLockTestsZSource_ModuleLockAsRLockTestsrZDEADLOCK_ERRORSZFrozen_DeadlockAvoidanceTestsZSource_DeadlockAvoidanceTestsrHZFrozen_LifetimeTestsZSource_LifetimeTestsrWrZunittets�mainrrrr
�<module>sH
�
��?�����