summaryrefslogtreecommitdiff
path: root/kvmd/aiotools.py
diff options
context:
space:
mode:
Diffstat (limited to 'kvmd/aiotools.py')
-rw-r--r--kvmd/aiotools.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/kvmd/aiotools.py b/kvmd/aiotools.py
index 18990c2c..10510b77 100644
--- a/kvmd/aiotools.py
+++ b/kvmd/aiotools.py
@@ -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)