diff --git a/src/pya/pya/pya.cc b/src/pya/pya/pya.cc index 377c7211f..8c617f71d 100644 --- a/src/pya/pya/pya.cc +++ b/src/pya/pya/pya.cc @@ -390,6 +390,8 @@ PythonInterpreter::~PythonInterpreter () m_stdout = PythonPtr (); m_stderr = PythonPtr (); + sp_interpreter = 0; + if (m_embedded) { Py_Finalize (); @@ -400,8 +402,6 @@ PythonInterpreter::~PythonInterpreter () } } - - sp_interpreter = 0; } char * diff --git a/testdata/klayout_main/main.rb b/testdata/klayout_main/main.rb index 279c20417..f867f4339 100644 --- a/testdata/klayout_main/main.rb +++ b/testdata/klayout_main/main.rb @@ -191,6 +191,18 @@ class KLayoutMain_TestClass < TestBase end + def test_12 + + # Application.exit(0) - Python + out = `#{self.klayout_bin} -z -r #{File.join(File.dirname(__FILE__), "test12.py")} 2>&1` + assert_equal(out, "Before exit()\n") + + # Application.exit(0) - Ruby + out = `#{self.klayout_bin} -z -r #{File.join(File.dirname(__FILE__), "test12.rb")} 2>&1` + assert_equal(out, "Before exit()\n") + + end + end load("test_epilogue.rb") diff --git a/testdata/klayout_main/test12.py b/testdata/klayout_main/test12.py new file mode 100644 index 000000000..b1e545993 --- /dev/null +++ b/testdata/klayout_main/test12.py @@ -0,0 +1,4 @@ + +print("Before exit()") +pya.Application.instance().exit(0) + diff --git a/testdata/klayout_main/test12.rb b/testdata/klayout_main/test12.rb new file mode 100644 index 000000000..304a4bf6d --- /dev/null +++ b/testdata/klayout_main/test12.rb @@ -0,0 +1,5 @@ + +$stdout.puts("Before exit()") +$stdout.flush +RBA::Application::instance.exit(0) +