proper usage of asyncio.wait() for first completed

This commit is contained in:
Devaev Maxim
2020-03-15 02:42:10 +03:00
parent eb419822cd
commit 5b58af4d6f
3 changed files with 17 additions and 8 deletions

View File

@@ -28,8 +28,11 @@ import types
import typing
from typing import Tuple
from typing import List
from typing import Set
from typing import Callable
from typing import Awaitable
from typing import Coroutine
from typing import Type
from typing import TypeVar
@@ -86,6 +89,10 @@ async def wait_infinite() -> None:
await asyncio.get_event_loop().create_future()
async def wait_first(*aws: Awaitable) -> Tuple[Set[asyncio.Future], Set[asyncio.Future]]:
return (await asyncio.wait(list(aws), return_when=asyncio.FIRST_COMPLETED))
# =====
async def afile_write_now(afile: aiofiles.base.AiofilesContextManager, data: bytes) -> None:
await afile.write(data)