diff --git a/beakerx/beakerx_magics/groovy_magic.py b/beakerx/beakerx_magics/groovy_magic.py index eea4a04ee4..2b97b87fea 100644 --- a/beakerx/beakerx_magics/groovy_magic.py +++ b/beakerx/beakerx_magics/groovy_magic.py @@ -15,12 +15,17 @@ from IPython import get_ipython from IPython.core.magic import (Magics, magics_class, cell_magic) from jupyter_client.manager import KernelManager +import atexit @magics_class class GroovyMagics(Magics): _execution_count = 1 + def stop_kernel(self): + self.kc.stop_channels() + self.km.shutdown_kernel(now=True) + def __init__(self, shell): super(GroovyMagics, self).__init__(shell) self.km = None @@ -29,6 +34,7 @@ def start(self): self.km = KernelManager() self.km.kernel_name = 'groovy' self.km.start_kernel() + atexit.register(self.stop_kernel) self.kc = self.km.client() self.kc.start_channels() try: @@ -37,10 +43,6 @@ def start(self): except AttributeError: self._wait_for_ready_backport() - def __del__(self): - self.kc.stop_channels() - self.km.shutdown_kernel(now=True) - def run_cell(self, line, code): if not self.km: self.start()