From: Yury Selivanov Date: Wed, 18 Nov 2015 17:39:45 +0000 (-0500) Subject: asyncio: Error if awaiting in parallel on the same coroutine X-Git-Tag: v3.5.1rc1~24^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b3dd6d70c7cde5e2bdb04da388e5a56f2af5ee91;p=thirdparty%2FPython%2Fcpython.git asyncio: Error if awaiting in parallel on the same coroutine This change won't do anything in CPython 3.4 See https://github.com/python/asyncio/pull/293 for details. --- diff --git a/Lib/asyncio/coroutines.py b/Lib/asyncio/coroutines.py index e11b21b09754..3a92c7d75522 100644 --- a/Lib/asyncio/coroutines.py +++ b/Lib/asyncio/coroutines.py @@ -140,7 +140,13 @@ class CoroWrapper: if compat.PY35: - __await__ = __iter__ # make compatible with 'await' expression + def __await__(self): + cr_await = getattr(self.gen, 'cr_await', None) + if cr_await is not None: + raise RuntimeError( + "Cannot await on coroutine {!r} while it's " + "awaiting for {!r}".format(self.gen, cr_await)) + return self @property def gi_yieldfrom(self):