Skip to content

Commit 73074e0

Browse files
committed
Do not set future if already done
1 parent 9b76cb3 commit 73074e0

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

expression/core/aiotools.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,13 +46,16 @@ def from_continuations(callback: Callbacks[_TSource]) -> Awaitable[_TSource]:
4646
future: "Future[_TSource]" = asyncio.Future()
4747

4848
def done(value: _TSource) -> None:
49-
future.set_result(value)
49+
if not future.done():
50+
future.set_result(value)
5051

5152
def error(err: Exception) -> None:
52-
future.set_exception(err)
53+
if not future.done():
54+
future.set_exception(err)
5355

5456
def cancel(_: OperationCanceledError) -> None:
55-
future.cancel()
57+
if not future.done():
58+
future.cancel()
5659

5760
callback(done, error, cancel)
5861
return future

0 commit comments

Comments
 (0)