Skip to content

Commit 94595af

Browse files
committed
ensure shutdown_kernel is backwards compatible
1 parent 54c86a0 commit 94595af

File tree

1 file changed

+7
-12
lines changed

1 file changed

+7
-12
lines changed

jupyter_client/multikernelmanager.py

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -239,19 +239,14 @@ async def _async_shutdown_kernel(
239239
restart : bool
240240
Will the kernel be restarted?
241241
"""
242-
kernel = self.get_kernel(kernel_id)
243-
if self._using_pending_kernels():
244-
# Make sure the previous kernel started before trying to shutdown.
245-
if not kernel.ready.done():
246-
raise RuntimeError("Kernel is in a pending state. Cannot shutdown.")
247-
# If the kernel didn't start properly, no need to shutdown.
248-
elif kernel.ready.exception():
249-
self.remove_kernel(kernel_id)
250-
return
242+
# If the kernel in a pending state?
251243
self.log.info("Kernel shutdown: %s" % kernel_id)
252-
if kernel_id in self._pending_kernels:
244+
if self._using_pending_kernels() and kernel_id in self._pending_kernels:
245+
raise RuntimeError("Kernel is in a pending state. Cannot shutdown.")
246+
elif kernel_id in self._pending_kernels:
247+
kernel = self._pending_kernels[kernel_id]
253248
try:
254-
await self._pending_kernels[kernel_id]
249+
await kernel
255250
except Exception:
256251
self.remove_kernel(kernel_id)
257252
return
@@ -296,7 +291,7 @@ def remove_kernel(self, kernel_id: str) -> KernelManager:
296291
async def _async_shutdown_all(self, now: bool = False) -> None:
297292
"""Shutdown all kernels."""
298293
kids = self.list_kernel_ids()
299-
kids += list(self._pending_kernels)
294+
kids += list(self._starting_kernels)
300295
futs = [ensure_async(self.shutdown_kernel(kid, now=now)) for kid in set(kids)]
301296
await asyncio.gather(*futs)
302297

0 commit comments

Comments
 (0)