diff --git a/ipykernel/kernelbase.py b/ipykernel/kernelbase.py index af051067b..5a988d37e 100644 --- a/ipykernel/kernelbase.py +++ b/ipykernel/kernelbase.py @@ -40,6 +40,7 @@ CONTROL_PRIORITY = 1 SHELL_PRIORITY = 10 +ABORT_PRIORITY = 20 class Kernel(SingletonConfigurable): @@ -791,11 +792,16 @@ def _abort_queues(self): stream.flush() self._aborting = True - def stop_aborting(f): - self.log.info("Finishing abort") - self._aborting = False + self.schedule_dispatch( + ABORT_PRIORITY, + self._dispatch_abort, + ) - self.io_loop.add_future(gen.sleep(self.stop_on_error_timeout), stop_aborting) + @gen.coroutine + def _dispatch_abort(self): + self.log.info("Finishing abort") + yield gen.sleep(self.stop_on_error_timeout) + self._aborting = False def _send_abort_reply(self, stream, msg, idents): """Send a reply to an aborted request"""