From b3dd6d70c7cde5e2bdb04da388e5a56f2af5ee91 Mon Sep 17 00:00:00 2001 From: Yury Selivanov Date: Wed, 18 Nov 2015 12:39:45 -0500 Subject: 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. --- Lib/asyncio/coroutines.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Lib/asyncio/coroutines.py b/Lib/asyncio/coroutines.py index e11b21b..3a92c7d 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): -- cgit v0.12