@@ -139,6 +139,11 @@ def __init__(self, **kwargs):
139139 self .kernel_culler = KernelCuller (parent = self )
140140 self .activity_monitor = ActivityMonitor (parent = self )
141141
142+ def _handle_kernel_died (self , kernel_id ):
143+ """notice that a kernel died"""
144+ self .log .warning ("Kernel %s died, removing from map." , kernel_id )
145+ self .remove_kernel (kernel_id )
146+
142147 def kernel_model (self , kernel_id ):
143148 """Return a JSON-safe dict representing a kernel
144149
@@ -269,13 +274,7 @@ def __init__(self, **kwargs):
269274 # Methods for managing kernels and sessions
270275 # -------------------------------------------------------------------------
271276
272- def _handle_kernel_died (self , kernel_id ):
273- """notice that a kernel died"""
274- self .log .warning ("Kernel %s died, removing from map." , kernel_id )
275- self .remove_kernel (kernel_id )
276-
277- @gen .coroutine
278- def start_kernel (self , kernel_id = None , path = None , ** kwargs ):
277+ async def start_kernel (self , kernel_id = None , path = None , ** kwargs ):
279278 """Start a kernel for a session and return its kernel_id.
280279
281280 Parameters
@@ -294,7 +293,7 @@ def start_kernel(self, kernel_id=None, path=None, **kwargs):
294293 if kernel_id is None :
295294 if path is not None :
296295 kwargs ['cwd' ] = self .cwd_for_path (path )
297- kernel_id = yield maybe_future (
296+ kernel_id = await maybe_future (
298297 super (MappingKernelManager , self ).start_kernel (** kwargs )
299298 )
300299 self ._kernel_connections [kernel_id ] = 0
@@ -317,8 +316,7 @@ def start_kernel(self, kernel_id=None, path=None, **kwargs):
317316 self ._check_kernel_id (kernel_id )
318317 self .log .info ("Using existing kernel: %s" % kernel_id )
319318
320- # py2-compat
321- raise gen .Return (kernel_id )
319+ return kernel_id
322320
323321 def shutdown_kernel (self , kernel_id , now = False ):
324322 """Shutdown a kernel by kernel_id"""
@@ -338,11 +336,10 @@ def shutdown_kernel(self, kernel_id, now=False):
338336
339337 return super (MappingKernelManager , self ).shutdown_kernel (kernel_id , now = now )
340338
341- @gen .coroutine
342- def restart_kernel (self , kernel_id ):
339+ async def restart_kernel (self , kernel_id ):
343340 """Restart a kernel by kernel_id"""
344341 self ._check_kernel_id (kernel_id )
345- yield maybe_future (super (MappingKernelManager , self ).restart_kernel (kernel_id ))
342+ await maybe_future (super (MappingKernelManager , self ).restart_kernel (kernel_id ))
346343 kernel = self .get_kernel (kernel_id )
347344 # return a Future that will resolve when the kernel has successfully restarted
348345 channel = kernel .connect_shell ()
@@ -379,7 +376,7 @@ def on_restart_failed():
379376 loop = IOLoop .current ()
380377 timeout = loop .add_timeout (loop .time () + self .kernel_info_timeout , on_timeout )
381378 # wait for restart to complete
382- yield future
379+ await future
383380
384381
385382class AsyncMappingKernelManager (MappingKernelManagerBase , AsyncMultiKernelManager ):
@@ -396,11 +393,6 @@ def __init__(self, **kwargs):
396393 # Methods for managing kernels and sessions
397394 # -------------------------------------------------------------------------
398395
399- def _handle_kernel_died (self , kernel_id ):
400- """notice that a kernel died"""
401- self .log .warning ("Kernel %s died, removing from map." , kernel_id )
402- self .remove_kernel (kernel_id )
403-
404396 async def start_kernel (self , kernel_id = None , path = None , ** kwargs ):
405397 """Start a kernel for a session and return its kernel_id.
406398
@@ -695,16 +687,14 @@ def _log_info(self):
695687 log_msg .append ("." )
696688 self .log .info ('' .join (log_msg ))
697689
698- @gen .coroutine
699- def cull_kernels (self ):
690+ async def cull_kernels (self ):
700691 self .log .debug ("Polling every %s seconds for kernels %s > %s seconds..." ,
701692 self .parent .cull_interval , self .cull_state , self .parent .cull_idle_timeout )
702693 # Get a separate list of kernels to avoid conflicting updates while iterating
703694 for kernel_id in self .parent .list_kernel_ids ():
704- yield self .parent .cull_kernel_if_idle (kernel_id )
695+ await self .parent .cull_kernel_if_idle (kernel_id )
705696
706- @gen .coroutine
707- def cull_kernel_if_idle (self , kernel_id ):
697+ async def cull_kernel_if_idle (self , kernel_id ):
708698
709699 # Get the kernel model and use that to determine cullability...
710700 try :
@@ -729,7 +719,7 @@ def cull_kernel_if_idle(self, kernel_id):
729719 self .log .warning (
730720 "Culling '%s' kernel '%s' (%s) with %d connections due to %s seconds of inactivity." ,
731721 model ['execution_state' ], model ['name' ], kernel_id , connections , idle_duration )
732- yield maybe_future (self .parent .shutdown_kernel (kernel_id ))
722+ await maybe_future (self .parent .shutdown_kernel (kernel_id ))
733723 except KeyError :
734724 pass # KeyErrors are somewhat expected since the kernel can be shutdown as the culling check is made.
735725 except Exception as e : # other errors are not as expected, so we'll make some noise, but continue.
0 commit comments