diff options
author | Yury Selivanov <yury@magic.io> | 2016-11-04 14:30:11 -0400 |
---|---|---|
committer | Yury Selivanov <yury@magic.io> | 2016-11-04 14:30:11 -0400 |
commit | 69312fa4a2712b3ff37e473c833a42162aa9b5cd (patch) | |
tree | 008bb64b7ee485a5031e94744ecf5fa22f51cf3d /Lib/asyncio/base_events.py | |
parent | 4b8eb7b8b4d2d4c2c900f0931d475ffa951d3215 (diff) | |
parent | 600a349781bfa0a8239e1cb95fac29c7c4a3302e (diff) | |
download | cpython-69312fa4a2712b3ff37e473c833a42162aa9b5cd.tar.gz cpython-69312fa4a2712b3ff37e473c833a42162aa9b5cd.zip |
Merge 3.5 (issue #28613)
Diffstat (limited to 'Lib/asyncio/base_events.py')
-rw-r--r-- | Lib/asyncio/base_events.py | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/Lib/asyncio/base_events.py b/Lib/asyncio/base_events.py index 68e676b5fd2..85cc1e4eae0 100644 --- a/Lib/asyncio/base_events.py +++ b/Lib/asyncio/base_events.py @@ -393,7 +393,10 @@ class BaseEventLoop(events.AbstractEventLoop): """Run until stop() is called.""" self._check_closed() if self.is_running(): - raise RuntimeError('Event loop is running.') + raise RuntimeError('This event loop is already running') + if events._get_running_loop() is not None: + raise RuntimeError( + 'Cannot run the event loop while another loop is running') self._set_coroutine_wrapper(self._debug) self._thread_id = threading.get_ident() if self._asyncgens is not None: @@ -401,6 +404,7 @@ class BaseEventLoop(events.AbstractEventLoop): sys.set_asyncgen_hooks(firstiter=self._asyncgen_firstiter_hook, finalizer=self._asyncgen_finalizer_hook) try: + events._set_running_loop(self) while True: self._run_once() if self._stopping: @@ -408,6 +412,7 @@ class BaseEventLoop(events.AbstractEventLoop): finally: self._stopping = False self._thread_id = None + events._set_running_loop(None) self._set_coroutine_wrapper(False) if self._asyncgens is not None: sys.set_asyncgen_hooks(*old_agen_hooks) |