[issue24523] coroutine asyncio.wait() does not preserve order of elements

Марк Коренберг report at bugs.python.org
Sun Jun 28 08:30:54 CEST 2015


New submission from Марк Коренберг:

If I pass an list of futures/coroutines as (done, _) = asyncio.wait([...]), order of elements in `done` does NOT match order of elements in `wait`'s argument. This is not documented, and I don't know if that is a bug or not.

Also, documentation say:

Wait for the Futures and coroutine objects given by the SEQUENCE futures to complete.

Really, this should be SET, since order is not preserved. Or, sources should be patched to preserve the order. I think, it is not hard to preserve order [in asyncio code].


P.S.

For example, in Tornado, it is guaranteed (and documented) that order is preserved, so I can write

[res1, res2] = yield [fut1(), fut2()]

and it is guaranteed, that res1 - is a result of fut1()

----------
components: asyncio
messages: 245899
nosy: gvanrossum, haypo, mmarkk, yselivanov
priority: normal
severity: normal
status: open
title: coroutine asyncio.wait() does not preserve order of elements
type: behavior
versions: Python 3.4

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue24523>
_______________________________________


More information about the Python-bugs-list mailing list