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
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 @@
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.