##// END OF EJS Templates
Make KernelManager.kill_kernel private....
Brian E. Granger -
Show More
@@ -96,41 +96,25 b' class MultiKernelManager(LoggingConfigurable):'
96 self._kernels[kernel_id] = km
96 self._kernels[kernel_id] = km
97 return kernel_id
97 return kernel_id
98
98
99 def shutdown_kernel(self, kernel_id):
99 def shutdown_kernel(self, kernel_id, now=False):
100 """Shutdown a kernel by its kernel uuid.
100 """Shutdown a kernel by its kernel uuid.
101
101
102 Parameters
102 Parameters
103 ==========
103 ==========
104 kernel_id : uuid
104 kernel_id : uuid
105 The id of the kernel to shutdown.
105 The id of the kernel to shutdown.
106 now : bool
107 Should the kernel be shutdown forcibly using a signal.
106 """
108 """
107 k = self.get_kernel(kernel_id)
109 k = self.get_kernel(kernel_id)
108 k.shutdown_kernel()
110 k.shutdown_kernel(now=now)
109 k.shell_channel.stop()
111 k.shell_channel.stop()
110 del self._kernels[kernel_id]
112 del self._kernels[kernel_id]
111
113
112 def shutdown_all(self):
114 def shutdown_all(self, now=False):
113 """Shutdown all kernels."""
115 """Shutdown all kernels."""
114 for kid in self.list_kernel_ids():
116 for kid in self.list_kernel_ids():
115 self.shutdown_kernel(kid)
117 self.shutdown_kernel(kid, now=now)
116
117 def kill_kernel(self, kernel_id):
118 """Kill a kernel by its kernel uuid.
119
120 Parameters
121 ==========
122 kernel_id : uuid
123 The id of the kernel to kill.
124 """
125 k = self.get_kernel(kernel_id)
126 k.kill_kernel()
127 k.shell_channel.stop()
128 del self._kernels[kernel_id]
129
130 def kill_all(self):
131 """Kill all kernels."""
132 for kid in self.list_kernel_ids():
133 self.kill_kernel(kid)
134
118
135 def interrupt_kernel(self, kernel_id):
119 def interrupt_kernel(self, kernel_id):
136 """Interrupt (SIGINT) the kernel by its uuid.
120 """Interrupt (SIGINT) the kernel by its uuid.
@@ -143,7 +127,7 b' class MultiKernelManager(LoggingConfigurable):'
143 return self.get_kernel(kernel_id).interrupt_kernel()
127 return self.get_kernel(kernel_id).interrupt_kernel()
144
128
145 def signal_kernel(self, kernel_id, signum):
129 def signal_kernel(self, kernel_id, signum):
146 """ Sends a signal to the kernel by its uuid.
130 """Sends a signal to the kernel by its uuid.
147
131
148 Note that since only SIGTERM is supported on Windows, this function
132 Note that since only SIGTERM is supported on Windows, this function
149 is only useful on Unix systems.
133 is only useful on Unix systems.
@@ -330,20 +314,15 b' class MappingKernelManager(MultiKernelManager):'
330 self.log.info("Using existing kernel: %s" % kernel_id)
314 self.log.info("Using existing kernel: %s" % kernel_id)
331 return kernel_id
315 return kernel_id
332
316
333 def shutdown_kernel(self, kernel_id):
317 def shutdown_kernel(self, kernel_id, now=False):
334 """Shutdown a kernel and remove its notebook association."""
318 """Shutdown a kernel and remove its notebook association."""
335 self._check_kernel_id(kernel_id)
319 self._check_kernel_id(kernel_id)
336 super(MappingKernelManager, self).shutdown_kernel(kernel_id)
320 super(MappingKernelManager, self).shutdown_kernel(
321 kernel_id, now=now
322 )
337 self.delete_mapping_for_kernel(kernel_id)
323 self.delete_mapping_for_kernel(kernel_id)
338 self.log.info("Kernel shutdown: %s" % kernel_id)
324 self.log.info("Kernel shutdown: %s" % kernel_id)
339
325
340 def kill_kernel(self, kernel_id):
341 """Kill a kernel and remove its notebook association."""
342 self._check_kernel_id(kernel_id)
343 super(MappingKernelManager, self).kill_kernel(kernel_id)
344 self.delete_mapping_for_kernel(kernel_id)
345 self.log.info("Kernel killed: %s" % kernel_id)
346
347 def interrupt_kernel(self, kernel_id):
326 def interrupt_kernel(self, kernel_id):
348 """Interrupt a kernel."""
327 """Interrupt a kernel."""
349 self._check_kernel_id(kernel_id)
328 self._check_kernel_id(kernel_id)
@@ -277,7 +277,7 b' class InProcessKernelManager(Configurable):'
277 self.kernel.frontends.append(self)
277 self.kernel.frontends.append(self)
278
278
279 def shutdown_kernel(self):
279 def shutdown_kernel(self):
280 self.kill_kernel()
280 self._kill_kernel()
281
281
282 def restart_kernel(self, now=False, **kwds):
282 def restart_kernel(self, now=False, **kwds):
283 self.shutdown_kernel()
283 self.shutdown_kernel()
@@ -287,7 +287,7 b' class InProcessKernelManager(Configurable):'
287 def has_kernel(self):
287 def has_kernel(self):
288 return self.kernel is not None
288 return self.kernel is not None
289
289
290 def kill_kernel(self):
290 def _kill_kernel(self):
291 self.kernel.frontends.remove(self)
291 self.kernel.frontends.remove(self)
292 self.kernel = None
292 self.kernel = None
293
293
@@ -923,7 +923,7 b' class KernelManager(Configurable):'
923 """
923 """
924 # FIXME: Shutdown does not work on Windows due to ZMQ errors!
924 # FIXME: Shutdown does not work on Windows due to ZMQ errors!
925 if sys.platform == 'win32':
925 if sys.platform == 'win32':
926 self.kill_kernel()
926 self._kill_kernel()
927 return
927 return
928
928
929 # Pause the heart beat channel if it exists.
929 # Pause the heart beat channel if it exists.
@@ -932,7 +932,7 b' class KernelManager(Configurable):'
932
932
933 if now:
933 if now:
934 if self.has_kernel:
934 if self.has_kernel:
935 self.kill_kernel()
935 self._kill_kernel()
936 else:
936 else:
937 # Don't send any additional kernel kill messages immediately, to give
937 # Don't send any additional kernel kill messages immediately, to give
938 # the kernel a chance to properly execute shutdown actions. Wait for at
938 # the kernel a chance to properly execute shutdown actions. Wait for at
@@ -946,7 +946,7 b' class KernelManager(Configurable):'
946 else:
946 else:
947 # OK, we've waited long enough.
947 # OK, we've waited long enough.
948 if self.has_kernel:
948 if self.has_kernel:
949 self.kill_kernel()
949 self._kill_kernel()
950
950
951 if not restart:
951 if not restart:
952 self.cleanup_connection_file()
952 self.cleanup_connection_file()
@@ -994,7 +994,7 b' class KernelManager(Configurable):'
994 """Has a kernel been started that we are managing."""
994 """Has a kernel been started that we are managing."""
995 return self.kernel is not None
995 return self.kernel is not None
996
996
997 def kill_kernel(self):
997 def _kill_kernel(self):
998 """Kill the running kernel.
998 """Kill the running kernel.
999
999
1000 This is a private method, callers should use shutdown_kernel(now=True).
1000 This is a private method, callers should use shutdown_kernel(now=True).
@@ -213,10 +213,6 b' class KernelManagerABC(object):'
213 pass
213 pass
214
214
215 @abc.abstractmethod
215 @abc.abstractmethod
216 def kill_kernel(self):
217 pass
218
219 @abc.abstractmethod
220 def interrupt_kernel(self):
216 def interrupt_kernel(self):
221 pass
217 pass
222
218
General Comments 0
You need to be logged in to leave comments. Login now