[Python-Dev] asyncio.wait(FIRST_COMPLETED) returns more than one completions (original) (raw)

Imran Geriskovan imran.geriskovan at gmail.com
Wed Mar 19 19:07:08 CET 2014


Code below has been written with the intension of acquiring ONLY one lock. There are two issues:

1- Sometimes it returns more than one lock in done. 2- Sometimes, even if wait exits with zero or one locks, it seems there are other locks are acquired too. Though, I couldn't isolate the exact case for this.

It sounds like some background shield() is at works.

I kindly request your comments.

locks = [some asyncio.Locks...] sel = [Pack(l.acquire(), l) for l in locks] done, pend = asyncio.wait(sel, timeout=10, return_when=FIRST_COMPLETED) ... @coroutine def Pack(co, obj): yield from co return obj

Regards, Imran



More information about the Python-Dev mailing list