summaryrefslogtreecommitdiffstats
path: root/Lib/asyncio
diff options
context:
space:
mode:
authorAndrew Svetlov <andrew.svetlov@gmail.com>2019-11-13 21:36:46 (GMT)
committerMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2019-11-13 21:36:46 (GMT)
commitdad6be5ffe48beb74fad78cf758b886afddc7aed (patch)
tree838e3725e0b281904f0ad097e282997570469b1a /Lib/asyncio
parent61289d436661025a3111065482275d49a4850b8d (diff)
downloadcpython-dad6be5ffe48beb74fad78cf758b886afddc7aed.zip
cpython-dad6be5ffe48beb74fad78cf758b886afddc7aed.tar.gz
cpython-dad6be5ffe48beb74fad78cf758b886afddc7aed.tar.bz2
bpo-38785: Prevent asyncio from crashing (GH-17144)
if parent `__init__` is not called from a constructor of object derived from `asyncio.Future` https://bugs.python.org/issue38785
Diffstat (limited to 'Lib/asyncio')
-rw-r--r--Lib/asyncio/futures.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/Lib/asyncio/futures.py b/Lib/asyncio/futures.py
index 98a5308e..9afda22 100644
--- a/Lib/asyncio/futures.py
+++ b/Lib/asyncio/futures.py
@@ -115,7 +115,10 @@ class Future:
def get_loop(self):
"""Return the event loop the Future is bound to."""
- return self._loop
+ loop = self._loop
+ if loop is None:
+ raise RuntimeError("Future object is not initialized.")
+ return loop
def cancel(self):
"""Cancel the future and schedule callbacks.