Beispiel #1
0
    def shutdown(self, shutdown_kernel=True):
        """Shutdown connection and kernel."""
        if self.shutting_down:
            return
        self.shutting_down = True
        if shutdown_kernel:
            if not self.kernel_manager:
                return

            self.interrupt_kernel()
            if self.kernel_manager:
                self.kernel_manager.stop_restarter()
            self.spyder_kernel_comm.close()
            if self.kernel_client is not None:
                self.kernel_client.stop_channels()
            if self.kernel_manager:
                shutdown_thread = QThread(None)
                shutdown_thread.kernel_manager = self.kernel_manager
                shutdown_thread.run = self.shutdown_kernel
                self.shutdown_thread_list.append(shutdown_thread)
                shutdown_thread.start()
        else:
            self.spyder_kernel_comm.close(shutdown_channel=False)
            if self.kernel_client is not None:
                self.kernel_client.stop_channels()

        self.prune_shutdown_thread_list()
        super(ShellWidget, self).shutdown()