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_asyncio/__pycache__/test_locks.cpython-311.pyc
�

��Vc���L�dZddlZddlmZddlZddlZddlZdZeje��Zd�Z	Gd�dej
��ZGd�d	ej
��ZGd
�dej
��Z
Gd�d
ej
��ZGd�dej
��Zedkrej��dSdS)zTests for locks.py�N)�mockz�^<(?P<class>.*?) object at (?P<address>.*?)\[(?P<extras>(set|unset|locked|unlocked|filling|draining|resetting|broken)(, value:\d)?(, waiters:\d+)?(, waiters:\d+\/\d+)?)\]>\Zc�.�tjd��dS�N)�asyncio�set_event_loop_policy���0D:\Python311\Lib\test\test_asyncio\test_locks.py�tearDownModulers���!�$�'�'�'�'�'r	c�V�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
S)�	LockTestsc�� K�tj��}|�t|���d����|�t
�t|������|����d{V��|�t|���d����|�t
�t|������dS)Nz[unlocked]>�	[locked]>)r�Lock�
assertTrue�repr�endswith�RGX_REPR�match�acquire��self�locks  r
�	test_reprzLockTests.test_reprs������|�~�~������T�
�
�+�+�M�:�:�;�;�;�������t�D�z�z�2�2�3�3�3��l�l�n�n������������T�
�
�+�+�K�8�8�9�9�9�������t�D�z�z�2�2�3�3�3�3�3r	c���K�tj��}|�td��5|�d{V��ddd��n#1swxYwY|�|�����dS)Nz/object Lock can't be used in 'await' expression)rr�assertRaisesRegex�	TypeError�assertFalse�lockedrs  r
�	test_lockzLockTests.test_lock%s������|�~�~��
�
#�
#��=�
�
�	�	��J�J�J�J�J�J�J�		�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	
��������'�'�'�'�'s�	A�A
�
A
c��:K�tjtjtjtjtjg}tj��}|D]I}|�t|j	�d���5||���ddd��n#1swxYwY�JdS)Nz8\.__init__\(\) got an unexpected keyword argument 'loop'��loop)
rr�	Condition�Event�	Semaphore�BoundedSemaphore�get_running_looprr�__name__)r�primitives_clsr#�clss    r
�&test_lock_doesnt_accept_loop_parameterz0LockTests.test_lock_doesnt_accept_loop_parameter0s������L����M����$�
���'�)�)��!�	�	�C��'�'���L�,�,�,���
�
�
�������
�
�
�
�
�
�
�
�
�
�
����
�
�
�
��	�	s�6
B�B	�B	c�� K�tj��tj��tj��tj��g}|D]�}tjd���d{V��|�|�����|�td��5|�d{V��5	ddd��n#1swxYwYddd��n#1swxYwY|�|�������dS)N�{�G�z�?z.object \w+ can't be used in 'await' expression)
rrr$r&r'�sleeprrrr)r�
primitivesrs   r
�test_lock_by_with_statementz%LockTests.test_lock_by_with_statementCs������L�N�N����������$�&�&�	
�
��		,�		,�D��-��%�%�%�%�%�%�%�%�%����T�[�[�]�]�+�+�+��'�'��A���
�
� �Z�Z�Z�Z�Z�Z����������������������	
�
�
�
�
�
�
�
�
�
�
����
�
�
�
�
���T�[�[�]�]�+�+�+�+�		,�		,s6�-	C�6C�8C�C�C�C�C�C	�"C	c���K�tj���g}|������d{V�����fd�}�fd�}�fd�}tj||����}tj||����}tjd���d{V��|�g|������tjd���d{V��|�dg|��tjd���d{V��|�dg|��tj||����}����tjd���d{V��|�ddg|������tjd���d{V��|�gd�|��|�|�����|�|�	����|�|�����|�|�	����|�|�����|�|�	����dS)Nc��j�K������d{V��r|�d��dS�N�T�r�append��resultrs �r
�c1z"LockTests.test_acquire.<locals>.c1\�@������\�\�^�^�#�#�#�#�#�#�
!��
�
�a� � � ��4r	c��j�K������d{V��r|�d��dS�N�Tr6r8s �r
�c2z"LockTests.test_acquire.<locals>.c2ar;r	c��j�K������d{V��r|�d��dS�N�Tr6r8s �r
�c3z"LockTests.test_acquire.<locals>.c3fr;r	rr5r>�r5r>rB)
rrrr�create_taskr/�assertEqual�release�doner9)	rr9r:r?rC�t1�t2�t3rs	        @r
�test_acquirezLockTests.test_acquireVs�������|�~�~�������d�l�l�n�n�,�,�,�,�,�,�-�-�-�	�	�	�	�	�
	�	�	�	�	�
	�	�	�	�	�
�
 ���F���
,�
,��
�
 ���F���
,�
,���m�A��������������V�$�$�$��������m�A�������������!��f�%�%�%��m�A�������������!��f�%�%�%�
�
 ���F���
,�
,���������m�A�������������!�Q���(�(�(��������m�A����������������F�+�+�+�������	�	�"�"�"�����	�	���$�$�$�������	�	�"�"�"�����	�	���$�$�$�������	�	�"�"�"�����	�	���$�$�$�$�$r	c���K�tj��}|�|����d{V����tj|�����}tj���|j��|�tj	��5|�d{V��ddd��n#1swxYwY|�
|j��dSr)rrrrrEr(�	call_soon�cancel�assertRaises�CancelledErrorr�_waiters)rr�tasks   r
�test_acquire_cancelzLockTests.test_acquire_cancel�s
�����|�~�~�����d�l�l�n�n�,�,�,�,�,�,�-�-�-��"�4�<�<�>�>�2�2��� �"�"�,�,�T�[�9�9�9�
�
�
�w�5�
6�
6�	�	��J�J�J�J�J�J�J�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	������'�'�'�'�'s�3	C�C�Cc���K�tj����fd�}tj�����}tj|d|����}tjd���d{V��|�������tj|dd����}tjd���d{V��|�t�j
��d��tj|dd����}tjd���d{V��|�t�j
��d��|�d��|���|��j
d�
����tjd���d{V��|�������|�|�����|�|�
����|�d{V��dS)Nc���K������d{V��	|�|�d{V������dS#����wxYwr)rrG)�name�blockerrs  �r
�lockitz*LockTests.test_cancel_race.<locals>.lockit�sh������,�,�.�.� � � � � � � �
��"�!�M�M�M�M�M�M�M�������������������s	�
?�A�Ar�Br5�Cr>)rrr(�
create_futurerEr/rrrF�lenrR�
set_resultrO�	cancelledrrH)rrY�fa�ta�tb�tcrs      @r
�test_cancel_racezLockTests.test_cancel_race�s(������|�~�~��	�	�	�	�	��
%�
'�
'�
5�
5�
7�
7��
�
 ����R���
1�
1���m�A����������������
�
�&�&�&�
�
 ����T�!2�!2�
3�
3���m�A��������������T�]�+�+�Q�/�/�/�
�
 ����T�!2�!2�
3�
3���m�A��������������T�]�+�+�Q�/�/�/�	�
�
�d����
�	�	��������
�a�(�2�2�4�4�5�5�5��m�A������������������'�'�'�������	�	�"�"�"���������'�'�'����������r	c������	K�tj��}tj���d�d����fd�}��	fd�}�����d{V��tj|�����	tj|����}tj|����}tjd���d{V��|�|��|�tj��5�	�d{V��ddd��n#1swxYwY|�	�d��|�	�d��|�
�	���o|�����|�
��tjd���d{V��|�
|�����dS)Nrc��T�K��dz
������d{V���dz
�dS�Nr5)r)�
call_countr�
lock_counts���r
rYz2LockTests.test_cancel_release_race.<locals>.lockit�s?�����
�!�O�J��,�,�.�.� � � � � � � ��!�O�J�J�Jr	c�X����������dSr)rOrG)rrIs��r
�triggerz3LockTests.test_cancel_release_race.<locals>.trigger�s!����I�I�K�K�K��L�L�N�N�N�N�Nr	r5rB)rr(rrrEr/rNrPrQrFrr`rHrO)
rr#rYrlrJrKrirrjrIs
      @@@@r
�test_cancel_release_racez"LockTests.test_cancel_release_race�s-���������'�)�)���|�~�~���
��
�	�	�	�	�	�	�	�	�	�	�	�	�	��l�l�n�n��������
�
 �����
*�
*��
�
 �����
*�
*��
�
 �����
*�
*���m�A�������������w����
�
�
�w�5�
6�
6�	�	��H�H�H�H�H�H�H�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
	
����Q�'�'�'�����Q�'�'�'���������4�2�7�7�9�9�5�5�5�	�	�	�����m�A������������������'�'�'�'�'s�:	D�D�Dc��K�tj��}|����d{V��|�|�����tj|�����}tjd���d{V��|�t|j	��d��tj|�����}|�
��|���tjd���d{V��|�|�����|�|�����|�d{V��dS�Nrr5)
rrrrrrEr/rFr^rRrOrGr`)rrrcrds    r
�test_finished_waiter_cancelledz(LockTests.test_finished_waiter_cancelled�sF�����|�~�~���l�l�n�n��������������
�
�&�&�&�
�
 ������
0�
0���m�A��������������T�]�+�+�Q�/�/�/��
 ������
0�
0��
�	�	�����������m�A����������������
�
�&�&�&���������'�'�'����������r	c��pK�tj��}|�t|j��dSr)rrrP�RuntimeErrorrGrs  r
�test_release_not_acquiredz#LockTests.test_release_not_acquireds/�����|�~�~�����,���5�5�5�5�5r	c��(K�tj��}|����d{V��|�|�����|���|�|�����dSr)rrrrrrGrrs  r
�test_release_no_waitersz!LockTests.test_release_no_waiterssz�����|�~�~���l�l�n�n��������������
�
�&�&�&���������������'�'�'�'�'r	c��rK�tj��}|�|�����|4�d{V��|�|�����ddd���d{V��n#1�d{V��swxYwY|�|�����dSr)rrrrrrs  r
�test_context_managerzLockTests.test_context_managers �����|�~�~����������'�'�'��	+�	+�	+�	+�	+�	+�	+�	+��O�O�D�K�K�M�M�*�*�*�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+����	+�	+�	+�	+�	
��������'�'�'�'�'��(A?�?
B	�B	N)r)�
__module__�__qualname__rr r,r1rLrTrermrprsrurwrr	r
r
r
s�������4�4�4�	(�	(�	(����&,�,�,�&1%�1%�1%�f(�(�(�-�-�-�^+(�+(�+(�Z���.6�6�6�
(�(�(�(�(�(�(�(r	r
c�2�eZdZd�Zd�Zd�Zd�Zd�Zd�ZdS)�
EventTestsc�N�tj��}|�t|���d����t
�t|����}|�|�d��d��|�	��|�t|���d����|�t
�t|������|j
�tj
����|�dt|��v��|�t
�t|������dS)Nz[unset]>�extras�unsetz[set]>�	waiters:1)rr%rrrrrrF�group�setrRr7r�Mock)r�evrs   r
rzEventTests.test_reprs&��
�]�_�_������R���)�)�*�5�5�6�6�6����t�B�x�x�(�(��������X�.�.��8�8�8�
����������R���)�)�(�3�3�4�4�4�������t�B�x�x�0�0�1�1�1�
����4�9�;�;�'�'�'�����t�B�x�x�/�0�0�0�������t�B�x�x�0�0�1�1�1�1�1r	c���K�tj���|�������g}�fd�}�fd�}�fd�}tj||����}tj||����}tjd���d{V��|�g|��tj||����}����tjd���d{V��|�gd�|��|�|�	����|�
|�����|�|�	����|�
|�����|�|�	����|�
|�����dS)Nc��n�K������d{V��r|�d��dSdSrh��waitr7�r9r�s �r
r:z EventTests.test_wait.<locals>.c13�E������W�W�Y�Y�������
!��
�
�a� � � � � �
!�
!r	c��n�K������d{V��r|�d��dSdS)Nr>r�r�s �r
r?z EventTests.test_wait.<locals>.c27r�r	c��n�K������d{V��r|�d��dSdS)NrBr�r�s �r
rCz EventTests.test_wait.<locals>.c3;r�r	r)rBr5r>)rr%r�is_setrEr/rFr�rrH�assertIsNoner9)	rr9r:r?rCrIrJrKr�s	        @r
�	test_waitzEventTests.test_wait-s������
�]�_�_����������%�%�%���	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!��
 ���F���
,�
,��
�
 ���F���
,�
,���m�A��������������V�$�$�$�
�
 ���F���
,�
,��
�������m�A����������������F�+�+�+�������	�	�"�"�"����"�)�)�+�+�&�&�&�������	�	�"�"�"����"�)�)�+�+�&�&�&�������	�	�"�"�"����"�)�)�+�+�&�&�&�&�&r	c��K�tj��}|���|����d{V��}|�|��dSr)rr%r�r�r)rr��ress   r
�test_wait_on_setzEventTests.test_wait_on_setRsO����
�]�_�_��
�������G�G�I�I�o�o�o�o�o�o����������r	c��K�tj��}tj|�����}tj���|j��|�tj��5|�d{V��ddd��n#1swxYwY|�	|j
��dSr)rr%rEr�r(rNrOrPrQrrR)rr�r�s   r
�test_wait_cancelzEventTests.test_wait_cancelYs�����
�]�_�_���"�2�7�7�9�9�-�-��� �"�"�,�,�T�[�9�9�9�
�
�
�w�5�
6�
6�	�	��J�J�J�J�J�J�J�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	������%�%�%�%�%s�	B�B�"Bc��jK�tj��}|�|�����|���|�|�����|���|�|�����dSr)rr%rr�r�r�clear)rr�s  r
�
test_clearzEventTests.test_clearbs�����
�]�_�_����������%�%�%�
����������	�	���$�$�$�
���
�
�
���������%�%�%�%�%r	c��f�K�tj���g}�fd�}tj||����}tjd���d{V��|�g|����������|���������������|�dt�j
����tjd���d{V��|�dg|��|�dt�j
����|�|�����|�|�
����dS)Nc��j�K������d{V��r|�d��dSr4r�r�s �r
r:z.EventTests.test_clear_with_waiters.<locals>.c1ps:������W�W�Y�Y�������
!��
�
�a� � � ��4r	rr5)rr%rEr/rFr�r�rr�r^rRrrHr9)rr9r:�tr�s    @r
�test_clear_with_waitersz"EventTests.test_clear_with_waitersls������
�]�_�_����	�	�	�	�	�

����6�
�
�+�+���m�A��������������V�$�$�$�
������
���
�
�
���������%�%�%�
������
����������C���,�,�-�-�-��m�A�������������!��f�%�%�%�����C���,�,�-�-�-���������!�!�!�������
�
�#�#�#�#�#r	N)	r)ryrzrr�r�r�r�r�rr	r
r|r|so������2�2�2�#'�#'�#'�J���&�&�&�&�&�&�$�$�$�$�$r	r|c�n�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�ZdS)�ConditionTestsc���K�tj���g}�fd�}�fd�}�fd�}tj||����}tj||����}tj||����}tjd���d{V��|�g|��|�������|������d{V������	��tjd���d{V��|�g|��|���������
��tjd���d{V��|�dg|��|���������	d��tjd���d{V��|�dg|��|���������
��tjd���d{V��|�ddg|��|���������
��tjd���d{V��|�gd�|��|�������|�|�����|�|�����|�|�����|�|�����|�|�����|�|�����dS)Nc���K������d{V�������d{V��r|�d��dSr4�rr�r7�r9�conds �r
r:z$ConditionTests.test_wait.<locals>.c1��`������,�,�.�.� � � � � � � ��Y�Y�[�[� � � � � � �
!��
�
�a� � � ��4r	c���K������d{V�������d{V��r|�d��dSr=r�r�s �r
r?z$ConditionTests.test_wait.<locals>.c2�r�r	c���K������d{V�������d{V��r|�d��dSrAr�r�s �r
rCz$ConditionTests.test_wait.<locals>.c3�r�r	rr5r>rD)
rr$rEr/rFrrrr�notifyrGrHr9�	rr9r:r?rCrIrJrKr�s	        @r
r�zConditionTests.test_wait�s������� �"�"����	�	�	�	�	�	�	�	�	�	�	�	�	�	�	��
 ���F���
,�
,��
�
 ���F���
,�
,��
�
 ���F���
,�
,���m�A��������������V�$�$�$���������'�'�'����d�l�l�n�n�,�,�,�,�,�,�-�-�-����
�
�
��m�A��������������V�$�$�$�������
�
�&�&�&��������m�A�������������!��f�%�%�%�������
�
�&�&�&����A�����m�A�������������!��f�%�%�%�������
�
�&�&�&��������m�A�������������!�Q���(�(�(�������
�
�&�&�&��������m�A����������������F�+�+�+�������
�
�&�&�&�������	�	�"�"�"�����	�	���$�$�$�������	�	�"�"�"�����	�	���$�$�$�������	�	�"�"�"�����	�	���$�$�$�$�$r	c��K�tj��}|����d{V��tj|�����}tj���|j��|�tj	��5|�d{V��ddd��n#1swxYwY|�
|j��|�|�
����dSr)rr$rrEr�r(rNrOrPrQrrRrr)rr�r�s   r
r�zConditionTests.test_wait_cancel�s����� �"�"���l�l�n�n���������"�4�9�9�;�;�/�/��� �"�"�,�,�T�[�9�9�9�
�
�
�w�5�
6�
6�	�	��J�J�J�J�J�J�J�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	������'�'�'�������
�
�&�&�&�&�&�� 	B5�5B9�<B9c��bK�tj��}|����d{V��|�|�����tj|�����}tjd���d{V��|�|�����|����d{V��|�|�����|�	��tj
���|j��tj
���|j
��	|�d{V��n#tj$rYnwxYw|�|�����dS�Nr)rr$rrrrEr�r/rr�r(rNrOrGrQ)rr��	wait_tasks   r
�test_wait_cancel_contestedz)ConditionTests.test_wait_cancel_contested�s������ �"�"���l�l�n�n��������������
�
�&�&�&��'��	�	���4�4�	��m�A������������������'�'�'��l�l�n�n��������������
�
�&�&�&����
�
�
�� �"�"�,�,�Y�-=�>�>�>�� �"�"�,�,�T�\�:�:�:�	��O�O�O�O�O�O�O�O���%�	�	�	��D�	����	
������
�
�&�&�&�&�&s�*E3�3F�Fc��p��K�d�tj�����fd�}tj|����}tjd���d{V�������d{V������tjd���d{V��|���tjd���d{V������tjd���d{V��|�|�	����|����dS)NFc���K��4�d{V��d������d{V��ddd���d{V��dS#1�d{V��swxYwYdS�NT�r�)r��waiteds��r
�wait_on_condzBConditionTests.test_wait_cancel_after_notify.<locals>.wait_on_cond�s�������
"�
"�
"�
"�
"�
"�
"�
"����i�i�k�k�!�!�!�!�!�!�!�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"����
"�
"�
"�
"�
"�
"s�<�
A�	Ar)
rr$rEr/rr�rOrGrr`)rr��waiterr�r�s   @@r
�test_wait_cancel_after_notifyz,ConditionTests.test_wait_cancel_after_notify�sV��������� �"�"��	"�	"�	"�	"�	"�	"��$�\�\�^�^�4�4���m�A�����������l�l�n�n�����������
�
�
��m�A�����������
�
�����m�A�����������������m�A��������������(�(�*�*�+�+�+���������r	c���K�tj��}|�t��5|����d{V��ddd��dS#1swxYwYdSr)rr$rPrrr��rr�s  r
�test_wait_unacquiredz#ConditionTests.test_wait_unacquireds������ �"�"��
�
�
�|�
,�
,�	�	��)�)�+�+��������	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�A�A�Ac��X���K�tj���d��fd��g}��fd�}tj||����}tjd���d{V��|�g|�������d{V����������tjd���d{V��|�g|��d������d{V����������tjd���d{V��|�dg|��|�|�	����|�|�
����dS)NFc����Srr)�presults�r
�	predicatez/ConditionTests.test_wait_for.<locals>.predicates����Nr	c����K������d{V��������d{V��r)|�d������dSr4)r�wait_forr7rG)r9r�r�s ��r
r:z(ConditionTests.test_wait_for.<locals>.c1sq������,�,�.�.� � � � � � � ��]�]�9�-�-�-�-�-�-�-�-�
��
�
�a� � � ��������4r	rTr5�rr$rEr/rFrr�rGrrHr9)rr9r:r�r�r�r�s    @@@r
�
test_wait_forzConditionTests.test_wait_for
s��������� �"�"����	�	�	�	�	���	�	�	�	�	�	�
����6�
�
�+�+���m�A��������������V�$�$�$��l�l�n�n�����������
�
�
��������m�A��������������V�$�$�$����l�l�n�n�����������
�
�
��������m�A�������������!��f�%�%�%���������!�!�!�������
�
�#�#�#�#�#r	c��6K�tj��}|�d����d{V��}|�gd�|��|�t
��5|�d����d{V��ddd��dS#1swxYwYdS)Nc�
�gd�S)NrDrrr	r
�<lambda>z9ConditionTests.test_wait_for_unacquired.<locals>.<lambda>6s
��)�)�)�r	rDc��dS)NFrrr	r
r�z9ConditionTests.test_wait_for_unacquired.<locals>.<lambda>:s���r	)rr$r�rFrPrr)rr�r�s   r
�test_wait_for_unacquiredz'ConditionTests.test_wait_for_unacquired2s������ �"�"���M�M�"3�"3�4�4�4�4�4�4�4�4��������C�(�(�(�
�
�
�|�
,�
,�	/�	/��-�-�
�
�.�.�.�.�.�.�.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�	/�	/s�$B�B�Bc��2�K�tj���g}�fd�}�fd�}�fd�}tj||����}tj||����}tj||����}tjd���d{V��|�g|�������d{V����d������tjd���d{V��|�dg|�������d{V����d����d������tjd���d{V��|�gd�|��|�|�	����|�|�
����|�|�	����|�|�
����|�|�	����|�|�
����dS)Nc����K������d{V�������d{V��r)|�d������dSr4�rr�r7rGr�s �r
r:z&ConditionTests.test_notify.<locals>.c1@�m������,�,�.�.� � � � � � � ��Y�Y�[�[� � � � � � �
��
�
�a� � � ��������4r	c����K������d{V�������d{V��r)|�d������dSr=r�r�s �r
r?z&ConditionTests.test_notify.<locals>.c2Gr�r	c����K������d{V�������d{V��r)|�d������dSrAr�r�s �r
rCz&ConditionTests.test_notify.<locals>.c3Nr�r	rr5irDr�r�s	        @r
�test_notifyzConditionTests.test_notify<s������� �"�"����	�	�	�	�	�	�	�	�	�	�	�	�	�	�	��
 ���F���
,�
,��
�
 ���F���
,�
,��
�
 ���F���
,�
,���m�A��������������V�$�$�$��l�l�n�n�����������A�����������m�A�������������!��f�%�%�%��l�l�n�n�����������A�������D�����������m�A����������������F�+�+�+�������	�	�"�"�"�����	�	���$�$�$�������	�	�"�"�"�����	�	���$�$�$�������	�	�"�"�"�����	�	���$�$�$�$�$r	c��>�K�tj���g}�fd�}�fd�}tj||����}tj||����}tjd���d{V��|�g|�������d{V����������tjd���d{V��|�ddg|��|�|�	����|�|�
����|�|�	����|�|�
����dS)Nc����K������d{V�������d{V��r)|�d������dSr4r�r�s �r
r:z*ConditionTests.test_notify_all.<locals>.c1ur�r	c����K������d{V�������d{V��r)|�d������dSr=r�r�s �r
r?z*ConditionTests.test_notify_all.<locals>.c2|r�r	rr5r>)rr$rEr/rFr�
notify_allrGrrHr9)rr9r:r?rIrJr�s      @r
�test_notify_allzConditionTests.test_notify_allps������� �"�"����	�	�	�	�	�	�	�	�	�	��
 ���F���
,�
,��
�
 ���F���
,�
,���m�A��������������V�$�$�$��l�l�n�n���������������������m�A�������������!�Q���(�(�(�������	�	�"�"�"�����	�	���$�$�$�������	�	�"�"�"�����	�	���$�$�$�$�$r	c�l�tj��}|�t|j��dSr)rr$rPrrr�r�s  r
�test_notify_unacquiredz%ConditionTests.test_notify_unacquired�s.��� �"�"�����,���4�4�4�4�4r	c�l�tj��}|�t|j��dSr)rr$rPrrr�r�s  r
�test_notify_all_unacquiredz)ConditionTests.test_notify_all_unacquired�s.��� �"�"�����,���8�8�8�8�8r	c��K�tj��}|�dt|��v��|�t�t|������|����d{V��|�dt|��v��|j�tj
����|�dt|��v��|�t�t|������|j�tj
����|�dt|��v��|�t�t|������dS)N�unlockedrr��	waiters:2)rr$rrrrrrRr7rr�r�s  r
rzConditionTests.test_repr�sR����� �"�"�����
�d�4�j�j�0�1�1�1�������t�D�z�z�2�2�3�3�3��l�l�n�n������������D��J�J�.�/�/�/��
���T�Y�[�[�)�)�)�����t�D�z�z�1�2�2�2�������t�D�z�z�2�2�3�3�3��
���T�Y�[�[�)�)�)�����t�D�z�z�1�2�2�2�������t�D�z�z�2�2�3�3�3�3�3r	c��rK�tj��}|�|�����|4�d{V��|�|�����ddd���d{V��n#1�d{V��swxYwY|�|�����dSr)rr$rrrr�s  r
rwz#ConditionTests.test_context_manager�s!����� �"�"����������'�'�'��	+�	+�	+�	+�	+�	+�	+�	+��O�O�D�K�K�M�M�*�*�*�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+����	+�	+�	+�	+���������'�'�'�'�'rxc����K�d�fd�	}|���d{V��|tj�����d{V��tj��}||tj|�����d{V��dS)Nc��T�K�|�tj��}|�tj|��}��|j|����|�������|�����|4�d{V����|�������|�����ddd���d{V��n#1�d{V��swxYwY��|�������|�����|4�d{V����|�������|�����ddd���d{V��n#1�d{V��swxYwY��|�������|�����dSr)rrr$�assertIs�_lockrrr)rr�rs  �r
�fz,ConditionTests.test_explicit_lock.<locals>.f�s�������
&��|�~�~���
/��(��.�.���M�M�$�*�d�+�+�+����T�[�[�]�]�+�+�+����T�[�[�]�]�+�+�+��
/�
/�
/�
/�
/�
/�
/�
/�������
�
�.�.�.�������
�
�.�.�.�
/�
/�
/�
/�
/�
/�
/�
/�
/�
/�
/�
/�
/�
/�
/�
/�
/�
/�
/�
/�
/�
/�
/����
/�
/�
/�
/�
���T�[�[�]�]�+�+�+����T�[�[�]�]�+�+�+��
/�
/�
/�
/�
/�
/�
/�
/�������
�
�.�.�.�������
�
�.�.�.�
/�
/�
/�
/�
/�
/�
/�
/�
/�
/�
/�
/�
/�
/�
/�
/�
/�
/�
/�
/�
/�
/�
/����
/�
/�
/�
/�
���T�[�[�]�]�+�+�+����T�[�[�]�]�+�+�+�+�+s&� AD�
D�D�(AG	�	
G�G)NN)rrr$)rr�rs`  r
�test_explicit_lockz!ConditionTests.test_explicit_lock�s������	,�	,�	,�	,�	,�	,�(�a�c�c�	�	�	�	�	�	�	��a���������������|�~�~���a��g�'��-�-�.�.�.�.�.�.�.�.�.�.�.r	c����K�tj������j����fd�}��fd�}|���d{V��|���d{V��dS)Nc����K���t��5tj����ddd��n#1swxYwYtj��}�|_|4�d{V��tj|��}��td��5|����d{V��ddd��n#1swxYwYddd���d{V��dS#1�d{V��swxYwYdS�Nr"z"is bound to a different event loop)	rPrrr�_loopr$rrrr�rr�r#rs  ��r
�wrong_loop_in_lockz?ConditionTests.test_ambiguous_loops.<locals>.wrong_loop_in_lock�s������"�"�9�-�-�
(�
(���$�'�'�'�'�
(�
(�
(�
(�
(�
(�
(�
(�
(�
(�
(����
(�
(�
(�
(��<�>�>�D��D�J��

)�

)�

)�

)�

)�

)�

)�

)��(��.�.���+�+� �8���)�)��,�,�.�.�(�(�(�(�(�(�(�	)�)�)�)�)�)�)�)�)�)�)����)�)�)�)�

)�

)�

)�

)�

)�

)�

)�

)�

)�

)�

)�

)�

)�

)�

)�

)�

)�

)�

)�

)�

)�

)�

)�

)����

)�

)�

)�

)�

)�

)sG�A�A�A�-0C"�C�8C"�C	�C"�C	�C"�"
C,�/C,c����K�tj��}|4�d{V����t��5tj|����ddd��n#1swxYwYtj|��}�|_��td��5|����d{V��ddd��n#1swxYwYddd���d{V��dS#1�d{V��swxYwYdSr�)	rrrPrr$r�rrrr�r�s  ��r
�wrong_loop_in_condz?ConditionTests.test_ambiguous_loops.<locals>.wrong_loop_in_cond�s�������<�>�>�D��	
&�	
&�	
&�	
&�	
&�	
&�	
&�	
&��&�&�y�1�1�7�7��%�d��6�6�6�6�7�7�7�7�7�7�7�7�7�7�7����7�7�7�7��(��.�.��!��
��+�+� �8���&�&��)�)�+�+�%�%�%�%�%�%�%�	&�&�&�&�&�&�&�&�&�&�&����&�&�&�&�	
&�	
&�	
&�	
&�	
&�	
&�	
&�	
&�	
&�	
&�	
&�	
&�	
&�	
&�	
&�	
&�	
&�	
&�	
&�	
&�	
&�	
&�	
&�	
&����	
&�	
&�	
&�	
&�	
&�	
&sX�C#�A�C#�A!	�!C#�$A!	�%9C#�C�9C#�C		�	C#�C		�
C#�#
C-�0C-)r�new_event_loop�
addCleanup�close)rr�r�r#s`  @r
�test_ambiguous_loopsz#ConditionTests.test_ambiguous_loops�s��������%�'�'������
�#�#�#�	)�	)�	)�	)�	)�	)�"	&�	&�	&�	&�	&�	&�!� �"�"�"�"�"�"�"�"�"� � �"�"�"�"�"�"�"�"�"�"�"r	c��TK�tj��}|4�d{V��|�tj��5tj|���d����d{V��ddd��n#1swxYwYddd���d{V��dS#1�d{V��swxYwYdS)Ng�?��timeout)rr$rP�TimeoutErrorr�r�)r�	conditions  r
�test_timeout_in_blockz$ConditionTests.test_timeout_in_block�s������%�'�'�	��	F�	F�	F�	F�	F�	F�	F�	F��"�"�7�#7�8�8�
F�
F��&�y�~�~�'7�'7��E�E�E�E�E�E�E�E�E�E�
F�
F�
F�
F�
F�
F�
F�
F�
F�
F�
F����
F�
F�
F�
F�	F�	F�	F�	F�	F�	F�	F�	F�	F�	F�	F�	F�	F�	F�	F�	F�	F�	F�	F�	F�	F�	F�	F�	F����	F�	F�	F�	F�	F�	Fs4� B�/A9�-B�9A=	�=B�A=	�B�
B!�$B!N)r)ryrzr�r�r�r�r�r�r�r�r�r�r�rrwr�r�r�rr	r
r�r��s������=%�=%�=%�~	'�	'�	'�'�'�'�2 � � �4���
#$�#$�#$�J/�/�/�2%�2%�2%�h"%�"%�"%�H5�5�5�9�9�9�4�4�4� (�(�(�/�/�/�4$#�$#�$#�LF�F�F�F�Fr	r�c�b�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�ZdS)�SemaphoreTestsc�|�tjd��}|�|�����dSr�)rr&rr�r�sems  r
�test_initial_value_zeroz&SemaphoreTests.test_initial_value_zero�s2�����"�"������
�
���%�%�%�%�%r	c���K�tj��}|�t|���d����|�t
�t|������|����d{V��|�t|���d����|�dt|��v��|�t
�t|������|j�tj
��|_|j�tj
����|�dt|��v��|�t
�t|������|j�tj
����|�dt|��v��|�t
�t|������dS)Nz[unlocked, value:1]>r�waitersr�r�)rr&rrrrrrrR�collections�dequer7rr�r�s  r
rzSemaphoreTests.test_reprs�������!�!������S�	�	�*�*�+A�B�B�C�C�C�������t�C�y�y�1�1�2�2�2��k�k�m�m������������S�	�	�*�*�;�7�7�8�8�8����	��c���2�3�3�3�������t�C�y�y�1�1�2�2�2��<�	/�&�,�.�.�C�L�����D�I�K�K�(�(�(�����t�C�y�y�0�1�1�1�������t�C�y�y�1�1�2�2�2�����D�I�K�K�(�(�(�����t�C�y�y�0�1�1�1�������t�C�y�y�1�1�2�2�2�2�2r	c��`K�tj��}|�d|j��|�t
d��5|�d{V��ddd��n#1swxYwY|�|�����|�d|j��dS)Nr5z4object Semaphore can't be used in 'await' expression)rr&rF�_valuerrrrr�s  r
�test_semaphorezSemaphoreTests.test_semaphores�������!�!������C�J�'�'�'�
�
#�
#��B�
�
�	�	��I�I�I�I�I�I�I�		�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	
��������&�&�&�����C�J�'�'�'�'�'s�	A!�!A%�(A%c�R�|�ttjd��dS)N���)rP�
ValueErrorrr&�rs r
�test_semaphore_valuez#SemaphoreTests.test_semaphore_value"s#�����*�g�&7��<�<�<�<�<r	c����K�tjd���g}|������d{V����|������d{V����|��������fd�}�fd�}�fd�}�fd�}tj||����}tj||����}tj||����}tjd���d{V��|�dg|��|�������|�dt�j
����|�d�j��tj||����}	��������|�d�j��tjd���d{V��|�d�j��|�dt|����|�������|�dt�j
����|�d�j��|�|�
����|�|�����|||	g}
d	�|
D��}|�dt|��������tj|
��d{V��dS)
NrBc��j�K������d{V��|�d��dSr4r6�r9r�s �r
r:z'SemaphoreTests.test_acquire.<locals>.c1-�>������+�+�-�-���������M�M�!�����4r	c��j�K������d{V��|�d��dSr=r6rs �r
r?z'SemaphoreTests.test_acquire.<locals>.c22rr	c��j�K������d{V��|�d��dSrAr6rs �r
rCz'SemaphoreTests.test_acquire.<locals>.c37rr	c��j�K������d{V��|�d��dS)N�Tr6rs �r
�c4z'SemaphoreTests.test_acquire.<locals>.c4<rr	rr5r>c�b�g|],}|����|����*|��-Sr)rHr9��.0r�s  r
�
<listcomp>z/SemaphoreTests.test_acquire.<locals>.<listcomp>[s2��G�G�G�A�q�v�v�x�x�G�A�H�H�J�J�G�a�G�G�Gr	)rr&rrrrrEr/rFr^rRr�rGrHr9�gather)
rr9r:r?rCrrIrJrK�t4�
race_tasks�
done_tasksr�s
            @r
rLzSemaphoreTests.test_acquire%s^��������"�"�������c�k�k�m�m�+�+�+�+�+�+�,�,�,����c�k�k�m�m�+�+�+�+�+�+�,�,�,���������&�&�&�	�	�	�	�	�
	�	�	�	�	�
	�	�	�	�	�
	�	�	�	�	�
�
 ���F���
,�
,��
�
 ���F���
,�
,��
�
 ���F���
,�
,���m�A�������������!��f�%�%�%�����
�
���%�%�%�����C���-�-�.�.�.�����C�J�'�'�'�
�
 ���F���
,�
,�����
�
�
����
�
�
�����C�J�'�'�'��m�A��������������C�J�'�'�'�����C��K�K�(�(�(�����
�
���%�%�%�����C���-�-�.�.�.�����C�J�'�'�'�������	�	�"�"�"�����	�	���$�$�$��"�b�\�
�G�G��G�G�G�
�����C�
�O�O�,�,�,�	���
�
�
��n�j�)�)�)�)�)�)�)�)�)�)r	c��K�tj��}|����d{V��tj|�����}tj���|j��|�tj��5|�d{V��ddd��n#1swxYwY|�	|j
ptd�|j
D������dS)Nc3�>K�|]}|���V��dSr�rH)rr�s  r
�	<genexpr>z5SemaphoreTests.test_acquire_cancel.<locals>.<genexpr>ks*����E�E�f�F�K�K�M�M�E�E�E�E�E�Er	)rr&rrEr(rNrOrPrQrrR�all)rr�rs   r
rTz"SemaphoreTests.test_acquire_cancelbs6������!�!���k�k�m�m���������%�c�k�k�m�m�4�4��� �"�"�,�,�W�^�<�<�<�
�
�
�w�5�
6�
6�	�	��M�M�M�M�M�M�M�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	����S�\�)�F��E�E���E�E�E�E�E�	G�	G�	G�	G�	Gr�c��K�tjd���}tj|�����}tj|�����}tj|�����}tj|�����}tjd���d{V��|���|���|���tjd���d{V��tjd���d{V��td�||fD����}|�|d��|�	|�
����|�|�
����|���|���tjd���d{V��dS)Nr��valuec3�>K�|]}|���V��dSrrrs  r
rzCSemaphoreTests.test_acquire_cancel_before_awoken.<locals>.<genexpr>}s*����2�2�A�q�v�v�x�x�2�2�2�2�2�2r	r5)rr&rErr/rOrG�sumrFrrHr)rr�rIrJrKr�num_dones       r
�!test_acquire_cancel_before_awokenz0SemaphoreTests.test_acquire_cancel_before_awokenms�������a�(�(�(��
�
 ������
/�
/��
�
 ������
/�
/��
�
 ������
/�
/��
�
 ������
/�
/���m�A����������
�	�	����
�	�	�������
�
�
��m�A�����������m�A�����������2�2�"�b��2�2�2�2�2������1�%�%�%�������	�	�"�"�"���������#�#�#�
�	�	����
�	�	�����m�A�����������r	c��TK�tjd���}tj|�����}tj|�����}tjd���d{V��|���|���tjd���d{V��tjd���d{V��|�|�����|�|�	����dS)Nrr)
rr&rErr/rOrGrrrH)rr�rIrJs    r
�test_acquire_hangz SemaphoreTests.test_acquire_hang�s������a�(�(�(��
�
 ������
/�
/��
�
 ������
/�
/���m�A����������
�	�	�������
�
�
��m�A�����������m�A��������������
�
���%�%�%�������	�	�"�"�"�"�"r	c������K�tjd�����fd�}��fd�}tj|����}tj|�����tj|�d����d{V��\}}��|du����t|tj����tj����d����d{V��dS)Nr5c���K��4�d{V��tjd���d{V��ddd���d{V��n#1�d{V��swxYwY����dSr�)rr/rO)r�rJs��r
r:z/SemaphoreTests.test_acquire_no_hang.<locals>.c1�s�������
'�
'�
'�
'�
'�
'�
'�
'��m�A�&�&�&�&�&�&�&�&�&�
'�
'�
'�
'�
'�
'�
'�
'�
'�
'�
'�
'�
'�
'�
'�
'�
'�
'�
'�
'�
'�
'�
'����
'�
'�
'�
'��I�I�K�K�K�K�Ks�9�
A�Ac���K��4�d{V����d��ddd���d{V��dS#1�d{V��swxYwYdSr�)rr�s��r
r?z/SemaphoreTests.test_acquire_no_hang.<locals>.c2�s�������
'�
'�
'�
'�
'�
'�
'�
'�� � ��&�&�&�
'�
'�
'�
'�
'�
'�
'�
'�
'�
'�
'�
'�
'�
'�
'�
'�
'�
'�
'�
'�
'�
'�
'�
'����
'�
'�
'�
'�
'�
'�
�5�
?�?T)�return_exceptionsg�?r�)	rr&rErr�
isinstancerQr�r)rr:r?rI�r1�r2r�rJs`     @@r
�test_acquire_no_hangz#SemaphoreTests.test_acquire_no_hang�s����������"�"��	�	�	�	�	�	�
	'�	'�	'�	'�	'�	'��
 �����
&�
&��
�
 �����
&�
&���~�b�"��E�E�E�E�E�E�E�E�E���B�����d�
�#�#�#����
�2�w�'=�>�>�?�?�?���s�{�{�}�}�c�:�:�:�:�:�:�:�:�:�:�:�:r	c�l�tj��}|�t|j��dSr)rr'rPrrGr�s  r
rsz(SemaphoreTests.test_release_not_acquired�s.���&�(�(�����*�c�k�2�2�2�2�2r	c��(K�tj��}|����d{V��|�|�����|���|�|�����dSr)rr&rrrrGrr�s  r
ruz&SemaphoreTests.test_release_no_waiters�s}������!�!���k�k�m�m������������
�
���%�%�%����
�
�
���������&�&�&�&�&r	c����K�tjd���g���fd�}tj��4�d{V��}|�|d����|�|d����|�|d����ddd���d{V��n#1�d{V��swxYwY|�gd����dS)Nr5c���K������d{V����|�d���tjd���d{V�����������d{V����|�d���tjd���d{V������dS)N�_1r.�_2)rr7rr/rG)�tagr9r�s ��r
�coroz4SemaphoreTests.test_acquire_fifo_order.<locals>.coro�s�������+�+�-�-���������M�M�S�*�*�*�%�%�%��-��%�%�%�%�%�%�%�%�%��K�K�M�M�M��+�+�-�-���������M�M�S�*�*�*�%�%�%��-��%�%�%�%�%�%�%�%�%��K�K�M�M�M�M�Mr	r:r?rC)�c1_1�c2_1�c3_1�c1_2�c2_2�c3_2)rr&�	TaskGrouprErF)rr3�tgr9r�s   @@r
�test_acquire_fifo_orderz&SemaphoreTests.test_acquire_fifo_order�sv���������"�"����		�		�		�		�		�		��$�&�&�	'�	'�	'�	'�	'�	'�	'�"��N�N�4�4��:�:�&�&�&��N�N�4�4��:�:�&�&�&��N�N�4�4��:�:�&�&�&�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'����	'�	'�	'�	'�
	
���<�<�<��	
�	
�	
�	
�	
s�AB'�'
B1�4B1c����	K�tjd���	g}�	fd�}�	fd�}�	fd�}tj||����}tj||����}tj||����}tjd���d{V���	����	���|||g}tj|��d{V��|�gd�|��dS)Nr5c��j�K������d{V��|�d��dSr4r6rs �r
r:z4SemaphoreTests.test_acquire_fifo_order_2.<locals>.c1�rr	c����K������d{V��|�d�����������d{V��|�d��dS)Nr>rT)rr7rGrs �r
r?z4SemaphoreTests.test_acquire_fifo_order_2.<locals>.c2�s}������+�+�-�-���������M�M�!�����K�K�M�M�M��+�+�-�-���������M�M�!�����4r	c��j�K������d{V��|�d��dSrAr6rs �r
rCz4SemaphoreTests.test_acquire_fifo_order_2.<locals>.c3�rr	r)r5r>rBr)rr&rEr/rGrrF�
rr9r:r?rCrIrJrK�tasksr�s
         @r
�test_acquire_fifo_order_2z(SemaphoreTests.test_acquire_fifo_order_2�s7��������"�"����	�	�	�	�	�
	�	�	�	�	�	�	�	�	�	�
�
 ���F���
,�
,��
�
 ���F���
,�
,��
�
 ���F���
,�
,���m�A�������������
�
�
����
�
�
��R�����n�e�$�$�$�$�$�$�$�$�������v�.�.�.�.�.r	c��L�	K�tjd���	g}�	fd�}�	fd�}�	fd�}tj||����}tj||����}tj||����}tjd���d{V��|���tjd���d{V���	����	���|||g}tj|ddi��d{V��|�ddg|��dS)	Nrc��j�K������d{V��|�d��dSr4r6rs �r
r:z4SemaphoreTests.test_acquire_fifo_order_3.<locals>.c1�rr	c��j�K������d{V��|�d��dSr=r6rs �r
r?z4SemaphoreTests.test_acquire_fifo_order_3.<locals>.c2�rr	c��j�K������d{V��|�d��dSrAr6rs �r
rCz4SemaphoreTests.test_acquire_fifo_order_3.<locals>.c3rr	r'Tr>rB)rr&rEr/rOrGrrFrAs
         @r
�test_acquire_fifo_order_3z(SemaphoreTests.test_acquire_fifo_order_3�sn��������"�"����	�	�	�	�	�
	�	�	�	�	�
	�	�	�	�	�
�
 ���F���
,�
,��
�
 ���F���
,�
,��
�
 ���F���
,�
,���m�A����������
�	�	�����m�A�������������
�
�
����
�
�
��R�����n�e�<�t�<�<�<�<�<�<�<�<�<����!�Q���(�(�(�(�(r	N)r)ryrzr�rr�rrLrTr r"r+rsrur<rCrHrr	r
r�r��s�������&�&�&�3�3�3�*(�(�(�=�=�=�;*�;*�;*�z	G�	G�	G����2#�#�#�;�;�;�,3�3�3�
'�'�'�
�
�
�2!/�!/�!/�F")�")�")�")�")r	r�c���eZdZ�fd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z�xZS)�BarrierTestsc��f�K�t������d{V��d|_dS)N�)�super�
asyncSetUp�N)r�	__class__s �r
rNzBarrierTests.asyncSetUps:������g�g� � �"�"�"�"�"�"�"�"�"�����r	c�>���fd�t|��D��}|S)Nc�H��g|]}tj�������Sr)rrE)r�_r3s  �r
rz+BarrierTests.make_tasks.<locals>.<listcomp>s*���?�?�?���$�T�T�V�V�,�,�?�?�?r	)�range)r�nr3rBs  ` r
�
make_taskszBarrierTests.make_taskss'���?�?�?�?�e�A�h�h�?�?�?���r	c��bK�|�||��}tj|��d{V��}||fSr)rVrr)rrUr3rBr�s     r
�gather_taskszBarrierTests.gather_tasks"sA��������4�(�(���N�E�*�*�*�*�*�*�*���E�z�r	c��>K�tj|j��}|�dt	|����|�td��5|�d{V��ddd��n#1swxYwY|�dt	|����dS)N�fillingz2object Barrier can't be used in 'await' expression)r�BarrierrO�assertInrrr�r�barriers  r
�test_barrierzBarrierTests.test_barrier's������/�$�&�)�)���
�
�i��g���/�/�/�
�
#�
#��@�
�
�	�	��M�M�M�M�M�M�M�		�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	
�
�
�i��g���/�/�/�/�/s�	A/�/A3�6A3c��K�tj|j��}|�t�t
|������|�dt
|����g}d�}d}t|��D]2}|�	tj
||�������3tjd���d{V��|�t�t
|������|�d|�d|j��t
|��v��|�dt
|����t|j|j
z
��D]2}|�	tj
||�������3tjd���d{V��|�t�t
|������|�dt
|����t|��D]2}|�	tj
||�������3tjd���d{V��|����d{V��|�t�t
|������|�dt
|����t|��D]2}|�	tj
||�������3tjd���d{V��|����d{V��|�t�t
|������|�d	t
|����|�|j��tj|d
di��d{V��dS)NrZc��>K�|����d{V��dSrr��r^s r
r�z$BarrierTests.test_repr.<locals>.wait9s,�����,�,�.�.� � � � � � � � � r	r>rzwaiters:�/�draining�	resetting�brokenr'T)rr[rOrrrrr\rTr7rEr/�parties�	n_waiting�reset�abortrfr)rr^r�r��incr�is      r
rzBarrierTests.test_repr2s������/�$�&�)�)��������t�G�}�}�5�5�6�6�6��
�
�i��g���/�/�/���	!�	!�	!����t���	?�	?�A��N�N�7�.�t�t�G�}�}�=�=�>�>�>�>��m�A����������������t�G�}�}�5�5�6�6�6����2�4�2�2�$�&�2�2�d�7�m�m�C�D�D�D��
�
�i��g���/�/�/��w���):�:�;�;�	?�	?�A��N�N�7�.�t�t�G�}�}�=�=�>�>�>�>��m�A����������������t�G�}�}�5�5�6�6�6��
�
�j�$�w�-�-�0�0�0��t���	?�	?�A��N�N�7�.�t�t�G�}�}�=�=�>�>�>�>��m�A�����������m�m�o�o��������������t�G�}�}�5�5�6�6�6��
�
�k�4��=�=�1�1�1��t���	?�	?�A��N�N�7�.�t�t�G�}�}�=�=�>�>�>�>��m�A�����������m�m�o�o��������������t�G�}�}�5�5�6�6�6��
�
�h��W�
�
�.�.�.������'�'�'��n�g�>��>�>�>�>�>�>�>�>�>�>�>r	c���K�|�td���|�td���|�tj|j��tj��dS)Nc�*�tjd��Sr��rr[rr	r
r�z3BarrierTests.test_barrier_parties.<locals>.<lambda>fs��g�o�a�.@�.@�r	c�*�tjd��S)N���rorr	r
r�z3BarrierTests.test_barrier_parties.<locals>.<lambda>gs��g�o�b�.A�.A�r	)rPr�assertIsInstancerr[rOrs r
�test_barrier_partiesz!BarrierTests.test_barrier_partiesesd�������*�&@�&@�A�A�A����*�&A�&A�B�B�B����g�o�d�f�5�5�w��G�G�G�G�Gr	c����K�d|_tj|j���g���fd�}|�|j|���d{V��|�t���t
t|j������|��j	d��|�
�j��dS)NrBc���K��4�d{V��}��|��ddd���d{V��dS#1�d{V��swxYwYdSr�r7)rlr^�resultss ��r
r3z/BarrierTests.test_context_manager.<locals>.corops�������
"�
"�
"�
"�
"�
"�
"�!����q�!�!�!�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"����
"�
"�
"�
"�
"�
"r&r)rOrr[rX�assertListEqual�sorted�listrTrFrhrrf�rr3r^rws  @@r
rwz!BarrierTests.test_context_managerks�����������/�$�&�)�)����	"�	"�	"�	"�	"�	"�������-�-�-�-�-�-�-�-�-����V�G�_�_�d�5���=�=�.A�.A�B�B�B�����*�A�.�.�.������(�(�(�(�(r	c����K�tjd����fd�}|���d{V��}|�|��|��jd��|��j��dS)Nr5c��h�K��4�d{V��}	ddd���d{V��dS#1�d{V��swxYwYdSr�r)rlr^s �r
r�z-BarrierTests.test_filling_one_task.<locals>.f}s�������
�
�
�
�
�
�
�!��
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
����
�
�
�
�
�
s�!�
+�+r)rr[rrFrhrrf)rr��retr^s   @r
�test_filling_one_taskz"BarrierTests.test_filling_one_taskzs�������/�!�$�$��	�	�	�	�	��A�C�C�i�i�i�i�i�i�������������*�A�.�.�.������(�(�(�(�(r	c��K�tjd��}tj|�����}tjd���d{V��|�|jd��tj|�����}tjd���d{V��|�|���|�����|�|���|�����|�|jd��|�	|j
��dS�Nr5r)rr[rEr�r/rFrhr9rHrrf)rr^rIrJs    r
�test_filling_one_task_twicez(BarrierTests.test_filling_one_task_twice�s#�����/�!�$�$��
�
 ������
0�
0���m�A��������������*�A�.�.�.�
�
 ������
0�
0���m�A������������������b�i�i�k�k�2�2�2���������B�G�G�I�I�.�.�.�����*�A�.�.�.������(�(�(�(�(r	c��fK�d|_tj|j��}tj|�����}tjd���d{V��|�|jd��|�dt|����tj|�����}tjd���d{V��|�|jd��|�dt|����tj|�����}tjd���d{V��tj|||g���d{V��|�|jd��|�
|j��dS)NrBrr5rZr>)rOrr[rEr�r/rFrhr\rrrf)rr^rIrJrKs     r
�test_filling_task_by_taskz&BarrierTests.test_filling_task_by_task�s���������/�$�&�)�)��
�
 ������
0�
0���m�A��������������*�A�.�.�.��
�
�i��g���/�/�/�
�
 ������
0�
0���m�A��������������*�A�.�.�.��
�
�i��g���/�/�/�
�
 ������
0�
0���m�A�����������l�B��B�<�(�(�(�(�(�(�(�(�(�����*�A�.�.�.������(�(�(�(�(r	c��
��K�tj|j���g���fd�}|�|j|���d{V��|�t���|jdz��|���d��|j��|���d��|j��|��jd��|��j	��dS)Nc���K��4�d{V����d���4�d{V����d��ddd���d{V��n#1�d{V��swxYwYddd���d{V��dS#1�d{V��swxYwYdS)NTFrv�r^rws��r
r3z8BarrierTests.test_filling_tasks_wait_twice.<locals>.coro�s�������
*�
*�
*�
*�
*�
*�
*�
*����t�$�$�$�"�*�*�*�*�*�*�*�*��N�N�5�)�)�)�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*����*�*�*�*�
*�
*�
*�
*�
*�
*�
*�
*�
*�
*�
*�
*�
*�
*�
*�
*�
*�
*�
*�
*�
*�
*�
*�
*����
*�
*�
*�
*�
*�
*s4�A6�A�A6�
A	�A6�A	� A6�6
B�Br>TFr)
rr[rOrXrFr^�countrhrrfr{s  @@r
�test_filling_tasks_wait_twicez*BarrierTests.test_filling_tasks_wait_twice�s�������/�$�&�)�)����	*�	*�	*�	*�	*�	*�������-�-�-�-�-�-�-�-�-�����W���t�v�a�x�0�0�0�������t�,�,�d�f�5�5�5�������u�-�-�t�v�6�6�6�����*�A�.�.�.������(�(�(�(�(r	c�����K�tj|j���g�g����fd�}|�|j|���d{V��\}}|�t���|j��|�t�����|�t���|j��|�t�����|�t|��tt|j������|��jd��|�
�j��dS)Nc��<�K��4�d{V����d���4�d{V��}��d��|cddd���d{V��cddd���d{V��S#1�d{V��swxYwY	ddd���d{V��dS#1�d{V��swxYwYdSr�rv)rlr^�results1�results2s ���r
r3z@BarrierTests.test_filling_tasks_check_return_value.<locals>.coro�s�������
�
�
�
�
�
�
�
�����%�%�%�"��������a��O�O�D�)�)�)���������������
�
�
�
�
�
�
�
�
�
�
�
�
�
�������������������
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
����
�
�
�
�
�
s4�B�A&�B�&
A0	�0B�3A0	�4B�
B�Br)rr[rOrXrFr^rrrxryrzrTrhrrf)rr3r�rSr^r�r�s    @@@r
�%test_filling_tasks_check_return_valuez2BarrierTests.test_filling_tasks_check_return_value�sC��������/�$�&�)�)������	�	�	�	�	�	�	��(�(����6�6�6�6�6�6�6�6���Q�����X�����/�/�/�����H�
�
�&�&�&�����X�����/�/�/�����H�
�
�&�&�&����V�C�[�[�$�u�T�V�}�}�*=�*=�>�>�>�����*�A�.�.�.������(�(�(�(�(r	c�����K�tj|j���g���fd�}|�|j|���d{V��|�t���|j��|��dd��|�t�d|jdz
�����|��jd��|�	�j
��dS)Nc���K��4�d{V����dt���v��ddd���d{V��dS#1�d{V��swxYwYdS)Nrd)r7rr�s��r
r3z.BarrierTests.test_draining_state.<locals>.coro�s�������
<�
<�
<�
<�
<�
<�
<�
<����z�T�'�]�]�:�;�;�;�
<�
<�
<�
<�
<�
<�
<�
<�
<�
<�
<�
<�
<�
<�
<�
<�
<�
<�
<�
<�
<�
<�
<�
<����
<�
<�
<�
<�
<�
<s�%A�
A�ArFr5r)rr[rOrXrFr^rrrhrrfr{s  @@r
�test_draining_statez BarrierTests.test_draining_state�s��������/�$�&�)�)����	<�	<�	<�	<�	<�	<�
������-�-�-�-�-�-�-�-�-�����W���t�v�.�.�.�������e�,�,�,�����G�I�T�V�A�X�I�.�/�/�0�0�0�����*�A�.�.�.������(�(�(�(�(r	c������K�d}tj|j���tj|j|z
���g}|�d}���fd�}|�|j|���d{V��dS)Nr>rc���K������d{V���dkr!�dz������d{V��dS�����d{V�������d{V��dSror�)r^�barrier_nowaiting�rewait_ns���r
r3z=BarrierTests.test_blocking_tasks_while_draining.<locals>.coro�s�������,�,�.�.� � � � � � � ��!�|�
%��A�
���l�l�n�n�$�$�$�$�$�$�$�$�$�(�,�,�.�.�.�.�.�.�.�.�.��l�l�n�n�$�$�$�$�$�$�$�$�$r	)rr[rOrX)r�rewaitrw�counterr3r^r�r�s     @@@r
�"test_blocking_tasks_while_drainingz/BarrierTests.test_blocking_tasks_while_draining�s�����������/�$�&�)�)��#�O�D�F�V�O�<�<��������	%�	%�	%�	%�	%�	%�	%�&������-�-�-�-�-�-�-�-�-�-�-r	c����K�d|_tj|j���g���fd�}tj|����}tjd���d{V��|��jd��tj|����}tjd���d{V��|��jd��|���tjd���d{V��|��jd��|�tj	��5|�d{V��ddd��n#1swxYwY|�
|�����tj|����}tjd���d{V��|��jd��tj|����}tj|||���d{V��|�t���|j��|�
t�����|��jd��|��j��dS)NrBc��j�K������d{V����d��dSr�r�r�s��r
r3z8BarrierTests.test_filling_tasks_cancel_one.<locals>.coro
s?������,�,�.�.� � � � � � � ��N�N�4� � � � � r	rr5r>)rOrr[rEr/rFrhrOrPrQrr`rr^rrrf)rr3rIrJrKrr^rws      @@r
�test_filling_tasks_cancel_onez*BarrierTests.test_filling_tasks_cancel_ones�����������/�$�&�)�)����	!�	!�	!�	!�	!�	!��
 �����
(�
(���m�A��������������*�A�.�.�.�
�
 �����
(�
(���m�A��������������*�A�.�.�.�
�	�	�����m�A��������������*�A�.�.�.�
�
�
�w�5�
6�
6�	�	��H�H�H�H�H�H�H�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	���������'�'�'�
�
 �����
(�
(���m�A��������������*�A�.�.�.�
�
 �����
(�
(���n�R��R�(�(�(�(�(�(�(�(�(�����W���t�v�.�.�.�����G���%�%�%�����*�A�.�.�.������(�(�(�(�(s�7	E�E�Ec��K�tjd��}tj|�����tjd���d{V��|�|jd��|�|j��dSr�)	rr[rErir/rFrhrrfr]s  r
�test_reset_barrierzBarrierTests.test_reset_barrier-s������/�!�$�$����G�M�M�O�O�,�,�,��m�A��������������*�A�.�.�.������(�(�(�(�(r	c��t��K�tj|j���g���fd�}�fd�}|�|jdz
|��}tjd���d{V��tj|����tj|��d{V��|�t���|jdz
��|�	t�����|��jd��|�dt�����|��j��dS)Nc���K�	�����d{V��dS#tj$r��d��YdSwxYwr��r�r�BrokenBarrierErrorr7r�s��r
r3zABarrierTests.test_reset_barrier_while_tasks_waiting.<locals>.coro:sk�����
%��l�l�n�n�$�$�$�$�$�$�$�$�$���-�
%�
%�
%����t�$�$�$�$�$�$�
%���s�!�$A	�A	c��@�K������d{V��dSr)rirbs�r
�
coro_resetzGBarrierTests.test_reset_barrier_while_tasks_waiting.<locals>.coro_reset@s-������-�-�/�/�!�!�!�!�!�!�!�!�!r	r5rre)rr[rOrVr/rErrFr^rrrh�assertNotInrrrf)rr3r�rBr^rws    @@r
�&test_reset_barrier_while_tasks_waitingz3BarrierTests.test_reset_barrier_while_tasks_waiting6sU�������/�$�&�)�)����	%�	%�	%�	%�	%�	%�	"�	"�	"�	"�	"��������4�0�0���m�A����������	��J�J�L�L�)�)�)��n�e�$�$�$�$�$�$�$�$�����W���t�v�a�x�0�0�0�����G���%�%�%�����*�A�.�.�.�����d�7�m�m�4�4�4������(�(�(�(�(r	c�����K�tj|j���g�|jdz����fd�}|�|j|���d{V��|��dg�z��|��jd��|�dt�����|��j	��dS)Nr>c����K�	�����d{V����jkr�����d{V��dSdS#tj$r��d��YdSwxYwr�)r��_countrirr�r7)r^�
rest_of_tasksr�s���r
r3zFBarrierTests.test_reset_barrier_when_tasks_half_draining.<locals>.coroVs������	
*��l�l�n�n�$�$�$�$�$�$�$�!�G�N�2�*�!�-�-�/�/�)�)�)�)�)�)�)�)�)�*�*���-�
&�
&�
&�����%�%�%�%�%�%�
&���s�A�$A0�/A0Trre�
rr[rOrXrFrhr�rrrf)rr3r^r�r�s  @@@r
�+test_reset_barrier_when_tasks_half_drainingz8BarrierTests.test_reset_barrier_when_tasks_half_drainingQs���������/�$�&�)�)�������	�
�
	*�
	*�
	*�
	*�
	*�
	*�
	*�������-�-�-�-�-�-�-�-�-�����D�6�-�#7�8�8�8�����*�A�.�.�.�����d�7�m�m�4�4�4������(�(�(�(�(r	c��������K�tj|j���g�g�|jdz�d������fd�}|�|j|���d{V��|��dg�z��|��g��|��jd��|�dt�����|��j	��dS)Nr>rc����K�	�����d{V���dz
���kr6�����d{V�������d{V��dS	�����d{V��dS#tj$r��d��YdSwxYw#tj$r3��d�������d{V��YdSwxYwr4)r�rirr�r7�r^�blocking_tasksr�r�r�s�����r
r3zTBarrierTests.test_reset_barrier_when_tasks_half_draining_half_blocking.<locals>.coropsM�����
.��l�l�n�n�$�$�$�$�$�$�$���
���>�)�.�!�-�-�/�/�)�)�)�)�)�)�)�"�,�,�.�.�(�(�(�(�(�(�(�(�(�.�%�l�l�n�n�,�,�,�,�,�,�,�,�,��"�5�.�.�.� ����-�-�-�-�-�-�.�����#�-�
%�
%�
%�����%�%�%��l�l�n�n�$�$�$�$�$�$�$�$�$�$�
%���s#�B(�!A=�=$B%�$B%�(>C*�)C*Trer��rr3r^r�r�r�r�s  @@@@@r
�9test_reset_barrier_when_tasks_half_draining_half_blockingzFBarrierTests.test_reset_barrier_when_tasks_half_draining_half_blockingis����������/�$�&�)�)�������������	.�	.�	.�	.�	.�	.�	.�	.�	.�2������-�-�-�-�-�-�-�-�-�����D�6�.�#8�9�9�9�����2�&�&�&�����*�A�.�.�.�����d�7�m�m�4�4�4������(�(�(�(�(r	c�����K�tj|j���g�g����fd�}��fd�}|�|jdz
|��}tj������tjd���d{V��tj|����tj|��d{V��|��j	��|�
t���|jdz
��|�t�����|�
t���|j��|�t�����|�
�jd��dS)Nc��^�K�	�����d{V��n*#tj$r��d��YnwxYw�����d{V����d��dS#�����d{V����d��wxYwr�r�)r^r�r�s���r
�coro1zTBarrierTests.test_reset_barrier_while_tasks_waiting_and_waiting_again.<locals>.coro1�s������
&��l�l�n�n�$�$�$�$�$�$�$�$���-�
&�
&�
&�����%�%�%�%�%�
&�����l�l�n�n�$�$�$�$�$�$�$�����%�%�%�%�%���l�l�n�n�$�$�$�$�$�$�$�����%�%�%�%���s&� �A;�$A�A;�A�A;�;1B,c���K��4�d{V����d��ddd���d{V��dS#1�d{V��swxYwYdSr�rv)r^r�s��r
�coro2zTBarrierTests.test_reset_barrier_while_tasks_waiting_and_waiting_again.<locals>.coro2�s�������
&�
&�
&�
&�
&�
&�
&�
&�����%�%�%�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&����
&�
&�
&�
&�
&�
&r&r5r)rr[rOrVrErir/rrrfrFr^rrrh)rr�r�rBr^r�r�s    @@@r
�8test_reset_barrier_while_tasks_waiting_and_waiting_againzEBarrierTests.test_reset_barrier_while_tasks_waiting_and_waiting_again�s���������/�$�&�)�)������	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&������q��%�0�0��	��G�M�M�O�O�,�,�,��m�A����������	��E�E�G�G�$�$�$��n�e�$�$�$�$�$�$�$�$������(�(�(�����X�����q��1�1�1�����H�
�
�&�&�&�����X�����/�/�/�����H�
�
�&�&�&�����*�A�.�.�.�.�.r	c��������K�tj�j���g�g�g�d�������fd�}���j|���d{V�����j����t�������t����jdz
����t���d����t����j����t��������j
d��dS)Nrc����K������d{V��}�dz
���jkr5�����d{V�������d{V��n]	�����d{V����d��n,#t$r}��d��Yd}~nd}~wwxYw�����d{V��}��d��dSr4)r�rOrir7�	Exception)	rl�e�kr^r�r�r��results3rs	   ������r
r3zBBarrierTests.test_reset_barrier_while_tasks_draining.<locals>.coro�s9������l�l�n�n�$�$�$�$�$�$�A��Q�J�E�����
*��m�m�o�o�%�%�%�%�%�%�%��l�l�n�n�$�$�$�$�$�$�$�$�*�!�,�,�.�.�(�(�(�(�(�(�(��O�O�D�)�)�)�)�� �*�*�*��O�O�D�)�)�)�)�)�)�)�)�����*�����l�l�n�n�$�$�$�$�$�$�A��O�O�D�!�!�!�!�!s�$/B�
B=�B8�8B=r5)rr[rOrXrrfrrrFr^rh)rr3r^r�r�r�r�s` @@@@@r
�'test_reset_barrier_while_tasks_drainingz4BarrierTests.test_reset_barrier_while_tasks_draining�sP�����������/�$�&�)�)����������	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�6������-�-�-�-�-�-�-�-�-������(�(�(�����H�
�
�&�&�&�����X�����q��1�1�1�����X����*�*�*�����X�����/�/�/�����H�
�
�&�&�&�����*�A�.�.�.�.�.r	c��K�tjd��}tj|�����tjd���d{V��|�|jd��|�|j��dSr�)	rr[rErjr/rFrhrrfr]s  r
�test_abort_barrierzBarrierTests.test_abort_barrier�s������/�!�$�$����G�M�M�O�O�,�,�,��m�A��������������*�A�.�.�.������'�'�'�'�'r	c��������K�tj|j���g�g�|jdz�d������fd�}|�|j|���d{V��|��j��|��dg�z��|��dg|j�z
dz
z��|��jd��|�dt�����dS)Nr>rc��r�K�	�����d{V���dz
���kr�����d{V��dS	�����d{V��dS#tj$r��d��YdSwxYw#tj$r��d��YdSwxYwr4)r�rjrr�r7r�s�����r
r3zTBarrierTests.test_abort_barrier_when_tasks_half_draining_half_blocking.<locals>.coro�s	�����
.��l�l�n�n�$�$�$�$�$�$�$�
��
���>�)�.�!�-�-�/�/�)�)�)�)�)�)�)�)�)�.�%�l�l�n�n�,�,�,�,�,�,�,�,�,��"�5�.�.�.� ����-�-�-�-�-�-�.������-�
&�
&�
&�����%�%�%�%�%�%�
&���s#�B�A#�#$B�
B�$B6�5B6Tr5re)
rr[rOrXrrfrFrhr�rr�s  @@@@@r
�9test_abort_barrier_when_tasks_half_draining_half_blockingzFBarrierTests.test_abort_barrier_when_tasks_half_draining_half_blocking�s$����������/�$�&�)�)�������������	.�	.�	.�	.�	.�	.�	.�	.�	.�&������-�-�-�-�-�-�-�-�-������'�'�'�����D�6�.�#8�9�9�9�����D�6�4�6�.�+@��+B�#C�D�D�D�����*�A�.�.�.�����d�7�m�m�4�4�4�4�4r	c�������K�tj�j���g�g�����fd�}���j|���d{V�����j����t���d����t����jdz
����t��������j	d��dS)Nc���K�	�4�d{V��}|�jdzkrt�	ddd���d{V��n#1�d{V��swxYwY�4�d{V����d��ddd���d{V��dS#1�d{V��swxYwYdS#tj$r��d��YdSt$r�����d{V��YdSwxYwr=)rOrrr7rr�rj)rlr^r�r�rs ����r
r3z<BarrierTests.test_abort_barrier_when_exception.<locals>.coros%�����	
&�"�+�+�+�+�+�+�+�a��D�F�A�I�~�+�*�*�*�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+����+�+�+�+�#�*�*�*�*�*�*�*�*��O�O�D�)�)�)�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*����*�*�*�*�*�*���-�
&�
&�
&�����%�%�%�%�%�%��
&�
&�
&��m�m�o�o�%�%�%�%�%�%�%�%�%�%�
&���s[�B�6�B�
A�B�A�B�A8�%B�8
B�B�B�B�$C�2#C�Crr5)
rr[rOrXrrfrFr^rrh)rr3r^r�r�s` @@@r
�!test_abort_barrier_when_exceptionz.BarrierTests.test_abort_barrier_when_exceptions���������/�$�&�)�)������
	&�
	&�
	&�
	&�
	&�
	&�
	&�
	&�������-�-�-�-�-�-�-�-�-������'�'�'�����X����*�*�*�����X�����q��1�1�1�����H�
�
�&�&�&�����*�A�.�.�.�.�.r	c��������K�tj�j���tj�j���g�g�g�������fd�}���j|���d{V�����j����t���d����t����jdz
����t�������t����j����t��������j
d��dS)Nc���K�	�����d{V��}|�jdzkrt������d{V����d��nO#tj$r��d��Yn)t$r�����d{V��YnwxYw�����d{V��}|�jdzkr�����d{V�������d{V�������d{V����d��dSr=)r�rOrrr7rr�rjri)rl�barrier1�barrier2r�r�r�rs ������r
r3zKBarrierTests.test_abort_barrier_when_exception_then_resetting.<locals>.coro1s������	
'�"�-�-�/�/�)�)�)�)�)�)������	�>�'�&�&��m�m�o�o�%�%�%�%�%�%�%�����%�%�%�%���-�
&�
&�
&�����%�%�%�%�%��
'�
'�
'��n�n�&�&�&�&�&�&�&�&�&�&�&�
'�����m�m�o�o�%�%�%�%�%�%�A��T�V�Q�Y��
'��n�n�&�&�&�&�&�&�&�&�&��-�-�/�/�!�!�!�!�!�!�!��-�-�/�/�!�!�!�!�!�!�!��O�O�D�!�!�!�!�!s�AA$�$$B0�
#B0�/B0rr5)rr[rOrXrrfrFr^rrrh)rr3r�r�r�r�r�s` @@@@@r
�0test_abort_barrier_when_exception_then_resettingz=BarrierTests.test_abort_barrier_when_exception_then_resetting)s\�����������?�4�6�*�*���?�4�6�*�*��������	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�,������-�-�-�-�-�-�-�-�-������)�)�)�����X����*�*�*�����X�����q��1�1�1�����H�
�
�&�&�&�����X�����/�/�/�����H�
�
�&�&�&�����+�Q�/�/�/�/�/r	)r)ryrzrNrVrXr_rrsrwrr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r��
__classcell__)rPs@r
rJrJs�������������������
	0�	0�	0�1?�1?�1?�fH�H�H�
)�
)�
)�)�)�)�)�)�)� )�)�)�,)�)�)�()�)�)�0)�)�)�$.�.�.�:#)�#)�#)�J)�)�)�)�)�)�6)�)�)�0&)�&)�&)�P#/�#/�#/�L+/�+/�+/�Z(�(�(� 5� 5� 5�D/�/�/�4'0�'0�'0�'0�'0�'0�'0r	rJ�__main__)�__doc__�unittestr�rerr��STR_RGX_REPR�compilerr�IsolatedAsyncioTestCaser
r|r�r�rJr)�mainrr	r
�<module>r�s���������������	�	�	�	����������
��2�:�l�#�#��(�(�(�@(�@(�@(�@(�@(��0�@(�@(�@(�Fi$�i$�i$�i$�i$��1�i$�i$�i$�XnF�nF�nF�nF�nF�X�5�nF�nF�nF�b[)�[)�[)�[)�[)�X�5�[)�[)�[)�|x0�x0�x0�x0�x0�8�3�x0�x0�x0�v�z����H�M�O�O�O�O�O��r