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.
This commit is contained in:
Ben Darnell 2015-09-27 20:10:49 -04:00
parent b3a6c413be
commit 8115299860
1 changed files with 2 additions and 2 deletions

View File

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