@@ -239,19 +239,14 @@ async def _async_shutdown_kernel(
239
239
restart : bool
240
240
Will the kernel be restarted?
241
241
"""
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?
251
243
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 ]
253
248
try :
254
- await self . _pending_kernels [ kernel_id ]
249
+ await kernel
255
250
except Exception :
256
251
self .remove_kernel (kernel_id )
257
252
return
@@ -296,7 +291,7 @@ def remove_kernel(self, kernel_id: str) -> KernelManager:
296
291
async def _async_shutdown_all (self , now : bool = False ) -> None :
297
292
"""Shutdown all kernels."""
298
293
kids = self .list_kernel_ids ()
299
- kids += list (self ._pending_kernels )
294
+ kids += list (self ._starting_kernels )
300
295
futs = [ensure_async (self .shutdown_kernel (kid , now = now )) for kid in set (kids )]
301
296
await asyncio .gather (* futs )
302
297
0 commit comments