]> granicus.if.org Git - python/commitdiff
asyncio: BaseEventLoop._assert_is_current_event_loop() now only raises an
authorVictor Stinner <victor.stinner@gmail.com>
Sun, 22 Jun 2014 22:03:43 +0000 (00:03 +0200)
committerVictor Stinner <victor.stinner@gmail.com>
Sun, 22 Jun 2014 22:03:43 +0000 (00:03 +0200)
exception if the current loop is not None.

Guido van Rossum wrote:

"The behavior that you can set the loop to None (and keep track of it
explicitly) is part of the spec, and this should still be supported even in
debug mode. The behavior that we raise an error if you are caught having
multiple active loops per thread is just a debugging heuristic, and it
shouldn't break code that follows the spec."

Lib/asyncio/base_events.py

index 9f9067ed9970b2e1ea1524c50f0e26cd59182728..2227a26e8334575b3be190c45bec064693b9019c 100644 (file)
@@ -327,7 +327,8 @@ class BaseEventLoop(events.AbstractEventLoop):
         Should only be called when (self._debug == True). The caller is
         responsible for checking this condition for performance reasons.
         """
-        if events.get_event_loop() is not self:
+        current = events.get_event_loop()
+        if current is not None and current is not self:
             raise RuntimeError(
                 "non-threadsafe operation invoked on an event loop other "
                 "than the current one")