Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.12/test/test_importlib/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.12/test/test_importlib/__pycache__/test_locks.cpython-312.opt-2.pyc

�

)Μg����ddlmZejd�ZddlZddlZddlZddlZddl	m
Z
ddlmZddl	m
Z
ejd��Gd	�d
�Zej!�D��cic]\}}||j"j$��c}}Zej(ee
j*e��\ZZGd�d
�Zej!�D��cic]\}}||j"j2��c}}Zej(eee��\ZZGd�d�Zej(ee��\ZZd�Z e!dk(rejD�yycc}}wcc}}w)�)�util�	importlibN)�support)�threading_helper)�
lock_testsT)�modulec�H�eZdZed��ZdZdZdZdZdZ	dZ
dZdZdZ
d�Zy)�ModuleLockAsRLockTestsc�$�|jd�S)N�	some_lock��LockType)�clss �;/usr/local/lib/python3.12/test/test_importlib/test_locks.py�<lambda>zModuleLockAsRLockTests.<lambda>s
��s�|�|�K�'@�Nc�~�tj�D]&}|jjj	��(y�N)�init�values�
_bootstrap�_blocking_on�clear)�self�	splitinits  r�tearDownzModuleLockAsRLockTests.tearDown&s*������I�� � �-�-�3�3�5�'r)�__name__�
__module__�__qualname__�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_reprr�rrr
r
sF���@�A�H��N���!%���I��L�#'� ����I���6rr
r
c�*�eZdZd�Zd�Zd�Zd�Zd�Zy)�DeadlockAvoidanceTestsc��	tj�|_tjd�y#t
$r
d|_YywxYw)Ng���ư>)�sys�getswitchinterval�old_switchintervalr�setswitchinterval�AttributeError�rs r�setUpzDeadlockAvoidanceTests.setUp6s=��	+�&)�&;�&;�&=�D�#��%�%�h�/���	+�&*�D�#�	+�s�.1�A�Ac�\�|j� tj|j�yyr)r1r/r2r4s rrzDeadlockAvoidanceTests.tearDown=s'���"�"�.��!�!�$�"9�"9�:�/rc�����	�
�d}t|�D�cgc]}�jt|����}}t|�D�cgc]}||||dz|zf��c}�	|r|}n|dz
}tj|��g�
�fd�����	�
fd�}tj||�5	ddd��jt�
�|��
Scc}wcc}w#1swY�0xYw)N�
�c�T��		|j�y#�j$rYywxYw)NTF)�acquire�
DeadlockError)�lockrs �r�_acquirezDDeadlockAvoidanceTests.run_deadlock_avoidance_test.<locals>._acquireLs5���
"�
��������%�%�
��
�s��'�'c�����j�\}}�|�}�j��|�}�j||f�|r|j�|r|j�yyr)�pop�wait�append�release)�a�b�ra�rbr>�barrier�pairs�resultss    ����r�fz=DeadlockAvoidanceTests.run_deadlock_avoidance_test.<locals>.fVsZ����9�9�;�D�A�q��!��B��L�L�N��!��B��N�N�B��8�$���	�	����	�	��r)	�ranger�str�	threading�Barrierr�Bunch�assertEqual�len)r�create_deadlock�NLOCKS�i�locks�NTHREADSrKr>rHrIrJs`      @@@@r�run_deadlock_avoidance_testz2DeadlockAvoidanceTests.run_deadlock_avoidance_testAs������05�f�
�>�
�1����s�1�v�&�
��>�:?��-�H�-�Q�%��(�E�1�Q�3��,�/�0�-�H����H���z�H��#�#�H�-����	�		��
�
�a��
*��+�����W��x�0����A?��H�8+�
*�s�!C
�C�#C�Cc���|jd�}|jd�}|j|d�|j|jd�t	|�|z
�y)NT�TFr9�TT)rX�count�assertGreaterEqualrQrR)rrJ�nb_deadlockss   r�
test_deadlockz$DeadlockAvoidanceTests.test_deadlockesT���2�2�4�8���}�}�]�3������a�0�������|�4�c�'�l�\�6Q�Rrc��|jd�}|j|jd�d�|j|jd�t|��y)NFrZrr[)rXrQr\rR)rrJs  r�test_no_deadlockz'DeadlockAvoidanceTests.test_no_deadlocknsH���2�2�5�9��������}�5�q�9�������|�4�c�'�l�CrN)rrrr5rrXr_rar+rrr-r-4s��+�;�"�HS�Drr-)rr<c�(�eZdZed��Zd�Zd�Zy)�
LifetimeTestsc�.�|jjSr)rrr4s r�	bootstrapzLifetimeTests.bootstrap�s���y�y�#�#�#rc��d}|j||jj�|jj|�}|j	||jj�tj|�}~tj�|j||jj�|j|��y)N�xyzzy)
�assertNotInre�
_module_locks�_get_module_lock�assertIn�weakref�refr�
gc_collect�assertIsNone)r�namer=�wrs    r�test_lock_lifetimez LifetimeTests.test_lock_lifetime�s���������t�~�~�;�;�<��~�~�.�.�t�4���
�
�d�D�N�N�8�8�9�
�[�[��
�����������t�~�~�;�;�<����"�$�rc��tj�|jdt|jj
�|jj
�y)Nr)rrnrQrRrerir4s r�test_all_lockszLifetimeTests.test_all_locks�s<����������C���� <� <�=����5�5�	7rN)rrr�propertyrerrrtr+rrrcrc~s��
�$��$�	 �7rrc)rc�t�tj�}tjtjg|���yr)r�threading_setup�unittest�addModuleCleanup�threading_cleanup)�thread_infos r�setUpModuler|�s*��"�2�2�4�K����.�@�@�O�;�Or�__main__)#�test.test_importlibr�	test_util�import_importlibrr/rNrxrl�testr�test.supportrr�requires_working_threadingr
�itemsr�_ModuleLock�
LOCK_TYPES�	test_both�
RLockTests�Frozen_ModuleLockAsRLockTests�Source_ModuleLockAsRLockTestsr-�_DeadlockError�DEADLOCK_ERRORS�Frozen_DeadlockAvoidanceTests�Source_DeadlockAvoidanceTestsrc�Frozen_LifetimeTests�Source_LifetimeTestsr|r�main)�kindrs00r�<module>r�ss��1�!�y�!�!�+�.��
�����)��,��+�+�4�8�6�6�4&*�Z�Z�\�3�%1�/�$�	��I�(�(�4�4�4�%1�3�
�
�Y���/��1F�1F�",�.����
=D�=D�B+/�*�*�,�8�*6��t�Y���-�-�<�<�<�*6�8��
�Y���/�",�'6�8����7�7�2�Y����T�2����P�
�z���H�M�M�O���i3��R8s�+!E�!E

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists