From: Ben Darnell Date: Mon, 28 Sep 2015 00:10:49 +0000 (-0400) Subject: Remove "IOLoop is closing" error. X-Git-Tag: v4.3.0b1~27^2~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8115299860c7d4fcc1fc159fd93ccbc2a77eb48f;p=thirdparty%2Ftornado.git Remove "IOLoop is closing" error. Callbacks added while the IOLoop is closing will now simply not be called (which has always been a possible fate for callbacks added just *before* the close). This exception has not proved to be very useful and sometimes has false positives that are tricky to work around, as seen in the linked issues. Closes #1491. Closes #1244. --- diff --git a/tornado/ioloop.py b/tornado/ioloop.py index a49e3ca95..195475ba0 100644 --- a/tornado/ioloop.py +++ b/tornado/ioloop.py @@ -914,7 +914,7 @@ class PollIOLoop(IOLoop): # with other threads, or waking logic will induce a race. with self._callback_lock: if self._closing: - raise RuntimeError("IOLoop is closing") + return list_empty = not self._callbacks self._callbacks.append(functools.partial( stack_context.wrap(callback), *args, **kwargs)) @@ -927,7 +927,7 @@ class PollIOLoop(IOLoop): self._waker.wake() else: if self._closing: - raise RuntimeError("IOLoop is closing") + return # If we're on the IOLoop's thread, we don't need the lock, # since we don't need to wake anyone, just add the # callback. Blindly insert into self._callbacks. This is