HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/projects/env/lib64/python3.10/site-packages/aiohttp/__pycache__/locks.cpython-310.pyc
o

+wep�@s6ddlZddlZddlmZmZmZGdd�d�ZdS)�N)�Any�Deque�Optionalc@sTeZdZdZdejddfdd�Zddeeddfdd	�Z	de
fd
d�Zddd
�ZdS)�EventResultOrErrorz�Event asyncio lock helper class.

    Wraps the Event asyncio lock allowing either to awake the
    locked Tasks without any error or raising an exception.

    thanks to @vorpalsmith for the simple design.
    �loop�returnNcCs$||_d|_t��|_t��|_dS�N)�_loop�_exc�asyncio�Event�_event�collections�deque�_waiters)�selfr�r�F/home/arjun/projects/env/lib/python3.10/site-packages/aiohttp/locks.py�__init__s
zEventResultOrError.__init__�exccCs||_|j��dSr)r
r
�set)rrrrrrszEventResultOrError.setc	�s^�|j�|j���}|j�|�z
|IdH}W|j�|�n|j�|�w|jdur-|j�|Sr)r	�create_taskr
�waitr�append�remover
)r�waiter�valrrrrs�
zEventResultOrError.waitcCs|jD]}|��qdS)zCancel all waitersN)r�cancel)rrrrrr&s

�zEventResultOrError.cancelr)rN)
�__name__�
__module__�__qualname__�__doc__r�AbstractEventLooprr�
BaseExceptionrrrrrrrrrs
r)rr�typingrrrrrrrr�<module>s