U
e5d|C ã @ s¾ d Z dZddlZddlZddlZddlmZ ddlmZ ddlmZ ddlm Z G d d
„ d
ƒZ
G dd„ dƒZG d
d„ deƒZG dd„ dƒZ
G dd„ deƒZG dd„ deƒZG dd„ deƒZdS )zSynchronization primitives.)ÚLockÚEventÚ ConditionÚ SemaphoreÚBoundedSemaphoreé Né )Úevents)Úfutures)Ú
exceptions)Ú
coroutinesc @ s( e Zd ZdZdd„ Zdd„ Zdd„ ZdS ) Ú_ContextManagera\ Context manager.
This enables the following idiom for acquiring and releasing a
lock around a block:
with (yield from lock):
while failing loudly when accidentally using:
with lock:
Deprecated, use 'async with' statement:
async with lock:
c C s
|| _ d S ©N)Ú_lock)ÚselfÚlock© r ú%/usr/lib64/python3.8/asyncio/locks.pyÚ__init__" s z_ContextManager.__init__c C s d S r
r ©r r r r Ú __enter__% s z_ContextManager.__enter__c G s z| j ¡ W 5 d | _ X d S r
)r Úrelease©r Úargsr r r Ú__exit__* s z_ContextManager.__exit__N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r r r r r r r r s r c @ sR e Zd Zdd„ Zdd„ Zejdd„ ƒZej e_ dd„ Z
d d
„ Zdd„ Zd
d„ Z
dS )Ú_ContextManagerMixinc C s t dƒ‚d S )Nz9"yield from" should be used as context manager expression)ÚRuntimeErrorr r r r r 2 s ÿz_ContextManagerMixin.__enter__c G s d S r
r r r r r r 6 s z_ContextManagerMixin.__exit__c c s&