HEX
Server: Microsoft-IIS/10.0
System: Windows NT ITPWINWEBSVR22 10.0 build 20348 (Windows Server 2022) AMD64
User: www.conferencesearch.co.uk (0)
PHP: 8.3.30
Disabled: NONE
Upload Files
File: D:/Python311/Lib/test/test_importlib/__pycache__/test_locks.cpython-311.opt-2.pyc
�

��Vc����ddlmZejd��ZddlZddlZddlZddlZddl	m
Z
ddlmZddl	m
Z
ejd���Gd	�d
��Zd�e���D��Zejee
je���\ZZGd
�d��Zd�e���D��Zejeee���\ZZGd�d��Zejee���\ZZd�Zedkrej��dSdS)�)�util�	importlibN)�support)�threading_helper)�
lock_testsT)�modulec�F�eZdZed���ZdZdZdZdZdZ	dZ
dZdZdS)�ModuleLockAsRLockTestsc�,�|�d��S)N�	some_lock��LockType)�clss �2D:\Python311\Lib\test\test_importlib\test_locks.py�<lambda>zModuleLockAsRLockTests.<lambda>s��s�|�|�K�'@�'@��N)
�__name__�
__module__�__qualname__�classmethod�locktype�test__is_owned�test_try_acquire�test_try_acquire_contended�	test_with�test_timeout�test_release_save_unacquired�	test_repr�test_locked_repr�rrr
r
sQ�������{�@�@�A�A�H��N���!%���I��L�#'� ��I����rr
c�.�i|]\}}||jj��Sr )�
_bootstrap�_ModuleLock��.0�kind�	splitinits   r�
<dictcomp>r($s4��3�3�3�!�$�	��I�(�4�3�3�3rr
c�,�eZdZd�Zd�Zd�Zd�Zd�ZdS)�DeadlockAvoidanceTestsc��	tj��|_tjd��dS#t
$rd|_YdSwxYw)Ng���ư>)�sys�getswitchinterval�old_switchintervalr�setswitchinterval�AttributeError��selfs r�setUpzDeadlockAvoidanceTests.setUp/s[��	+�&)�&;�&=�&=�D�#��%�h�/�/�/�/�/���	+�	+�	+�&*�D�#�#�#�#�	+���s�,0�A�Ac�J�|j�tj|j��dSdS�N)r.r,r/r1s r�tearDownzDeadlockAvoidanceTests.tearDown6s1���"�	;��!�$�"9�:�:�:�:�:�	;�	;rc�t�������	�d��fd�t���D�����fd�t���D���|r�}n�dz
}tj|���g�	�fd������	fd�}tj||�������t�	��|���	S)N�
c�T��g|]$}��t|������%Sr )r�str)r%�ir2s  �r�
<listcomp>zFDeadlockAvoidanceTests.run_deadlock_avoidance_test.<locals>.<listcomp><s+���>�>�>�1����s�1�v�v�&�&�>�>�>rc�<��g|]}�|�|dz�zf��S)�r )r%r;�NLOCKS�lockss  ��rr<zFDeadlockAvoidanceTests.run_deadlock_avoidance_test.<locals>.<listcomp>=s/���H�H�H�Q�%��(�E�1�Q�3��,�/�0�H�H�Hrr>c�V��		|���dS#�j$rYdSwxYw)NTF)�acquire�
DeadlockError)�lockr2s �r�_acquirezDDeadlockAvoidanceTests.run_deadlock_avoidance_test.<locals>._acquireEsH���
"�
��������t���%�
�
�
��u�u�
���s��
(�(c�������\}}�|��}�����|��}��||f��|r|���|r|���dSdSr5)�pop�wait�append�release)�a�b�ra�rbrE�barrier�pairs�resultss    ����r�fz=DeadlockAvoidanceTests.run_deadlock_avoidance_test.<locals>.fOs�����9�9�;�;�D�A�q���!���B��L�L�N�N�N���!���B��N�N�B��8�$�$�$��
��	�	�����
��	�	������
�
r)�range�	threading�Barrierr�Bunch�wait_for_finished�assertEqual�len)
r2�create_deadlock�NTHREADSrRr?rErOr@rPrQs
`   @@@@@@r�run_deadlock_avoidance_testz2DeadlockAvoidanceTests.run_deadlock_avoidance_test:s������������>�>�>�>��f�
�
�>�>�>��H�H�H�H�H�%��-�-�H�H�H���	"��H�H���z�H��#�H�-�-����	�	�	�	�	�		�		�		�		�		�		�		�		�	���H�%�%�7�7�9�9�9�����W���x�0�0�0��rc��|�d��}|�d��}|�|d��|�|�d��t	|��|z
��dS)NT�TFr>�TT)r\�count�assertGreaterEqualrXrY)r2rQ�nb_deadlockss   r�
test_deadlockz$DeadlockAvoidanceTests.test_deadlock]sq���2�2�4�8�8���}�}�]�3�3������a�0�0�0�������|�4�4�c�'�l�l�\�6Q�R�R�R�R�Rrc���|�d��}|�|�d��d��|�|�d��t|����dS)NFr^rr_)r\rXr`rY)r2rQs  r�test_no_deadlockz'DeadlockAvoidanceTests.test_no_deadlockfse���2�2�5�9�9��������}�5�5�q�9�9�9�������|�4�4�c�'�l�l�C�C�C�C�CrN)rrrr3r6r\rcrer rrr*r*-sh������+�+�+�;�;�;�!�!�!�FS�S�S�D�D�D�D�Drr*c�.�i|]\}}||jj��Sr )r"�_DeadlockErrorr$s   rr(r(ls4��8�8�8�&�t�Y���-�<�8�8�8r)rrCc�0�eZdZed���Zd�Zd�ZdS)�
LifetimeTestsc��|jjSr5)�initr"r1s r�	bootstrapzLifetimeTests.bootstrapxs
���y�#�#rc��d}|�||jj��|j�|��}|�||jj��tj|��}~tj��|�||jj��|�	|����dS)N�xyzzy)
�assertNotInrl�
_module_locks�_get_module_lock�assertIn�weakref�refr�
gc_collect�assertIsNone)r2�namerD�wrs    r�test_lock_lifetimez LifetimeTests.test_lock_lifetime|s���������t�~�;�<�<�<��~�.�.�t�4�4���
�
�d�D�N�8�9�9�9�
�[��
�
������������t�~�;�<�<�<����"�"�$�$�����rc��tj��|�dt|jj��|jj��dS)Nr)rrurXrYrlrpr1s r�test_all_lockszLifetimeTests.test_all_locks�sL�����������C��� <�=�=���5�	7�	7�	7�	7�	7rN)rrr�propertyrlryr{r rrririvsK������
�$�$��X�$�	 �	 �	 �7�7�7�7�7rri)rkc�d�tj��}tjtjg|�R�dSr5)r�threading_setup�unittest�addModuleCleanup�threading_cleanup)�thread_infos r�setUpModuler��s3��"�2�4�4�K���.�@�O�;�O�O�O�O�O�Or�__main__) �test.test_importlibr�	test_util�import_importlibrkr,rTrrs�testr�test.supportrr�requires_working_threadingr
�items�
LOCK_TYPES�	test_both�
RLockTests�Frozen_ModuleLockAsRLockTests�Source_ModuleLockAsRLockTestsr*�DEADLOCK_ERRORS�Frozen_DeadlockAvoidanceTests�Source_DeadlockAvoidanceTestsri�Frozen_LifetimeTests�Source_LifetimeTestsr�r�mainr rr�<module>r�s&��1�1�1�1�1�1�!�y�!�+�.�.��
�
�
�
�������������������)�)�)�)�)�)�������,��+�4�8�8�8�8���������$3�3�%)�Z�Z�\�\�3�3�3�
�
�Y��/��1F�",�.�.�.����
<D�<D�<D�<D�<D�<D�<D�<D�~8�8�*.�*�*�,�,�8�8�8��
�Y��/�",�'6�8�8�8����7�7�7�7�7�7�7�7�2�Y���T�2�2�2����P�P�P�
�z����H�M�O�O�O�O�O��r