
    bfp                     D    d dl Z d dlZd dlmZmZmZ  G d d          ZdS )    N)AnyDequeOptionalc                   ^    e Zd ZdZdej        ddfdZd
dee         ddfdZ	de
fdZdd	ZdS )EventResultOrErrorzEvent 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returnNc                     || _         d | _        t          j                    | _        t          j                    | _        d S N)_loop_excasyncioEvent_eventcollectionsdeque_waiters)selfr   s     G/var/www/html/Alfredo/env/lib/python3.11/site-packages/aiohttp/locks.py__init__zEventResultOrError.__init__   s1    
-1	moo4?4E4G4G    excc                 F    || _         | j                                         d S r   )r   r   set)r   r   s     r   r   zEventResultOrError.set   s!    	r   c                 B  K   | j                             | j                                                  }| j                            |           	 | d {V }| j                            |           n# | j                            |           w xY w| j        | j        |S r   )r   create_taskr   waitr   appendremover   )r   waitervals      r   r   zEventResultOrError.wait   s      ''(8(8(:(:;;V$$$	),,,,,,CM  ((((DM  ((((9 )O
s   A2 2Bc                 B    | j         D ]}|                                 dS )zCancel all waitersN)r   cancel)r   r    s     r   r#   zEventResultOrError.cancel&   s,    m 	 	FMMOOOO	 	r   r   )r	   N)__name__
__module____qualname____doc__r   AbstractEventLoopr   r   BaseExceptionr   r   r   r#    r   r   r   r      s         HW6 H4 H H H H x. $    C         r   r   )r   r   typingr   r   r   r   r*   r   r   <module>r,      sj         ' ' ' ' ' ' ' ' ' '# # # # # # # # # #r   