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:
parent
b3a6c413be
commit
8115299860
|
@ -914,7 +914,7 @@ class PollIOLoop(IOLoop):
|
||||||
# with other threads, or waking logic will induce a race.
|
# with other threads, or waking logic will induce a race.
|
||||||
with self._callback_lock:
|
with self._callback_lock:
|
||||||
if self._closing:
|
if self._closing:
|
||||||
raise RuntimeError("IOLoop is closing")
|
return
|
||||||
list_empty = not self._callbacks
|
list_empty = not self._callbacks
|
||||||
self._callbacks.append(functools.partial(
|
self._callbacks.append(functools.partial(
|
||||||
stack_context.wrap(callback), *args, **kwargs))
|
stack_context.wrap(callback), *args, **kwargs))
|
||||||
|
@ -927,7 +927,7 @@ class PollIOLoop(IOLoop):
|
||||||
self._waker.wake()
|
self._waker.wake()
|
||||||
else:
|
else:
|
||||||
if self._closing:
|
if self._closing:
|
||||||
raise RuntimeError("IOLoop is closing")
|
return
|
||||||
# If we're on the IOLoop's thread, we don't need the lock,
|
# 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
|
# since we don't need to wake anyone, just add the
|
||||||
# callback. Blindly insert into self._callbacks. This is
|
# callback. Blindly insert into self._callbacks. This is
|
||||||
|
|
Loading…
Reference in New Issue