diff --git a/src/PYTHON/python.cpp b/src/PYTHON/python.cpp index 74591c1c160617f10dc184012167112f16f2de87..c2ff7f03c7bcd4fc0f3fef83b74f996430d7c498 100644 --- a/src/PYTHON/python.cpp +++ b/src/PYTHON/python.cpp @@ -45,23 +45,25 @@ Python::Python(LAMMPS *lmp) : Pointers(lmp) Python::~Python() { - // clean up - PyGILState_STATE gstate = PyGILState_Ensure(); - - for (int i = 0; i < nfunc; i++) { - delete [] pfuncs[i].name; - deallocate(i); - PyObject *pFunc = (PyObject *) pfuncs[i].pFunc; - Py_XDECREF(pFunc); - } + if(pyMain) { + // clean up + PyGILState_STATE gstate = PyGILState_Ensure(); + + for (int i = 0; i < nfunc; i++) { + delete [] pfuncs[i].name; + deallocate(i); + PyObject *pFunc = (PyObject *) pfuncs[i].pFunc; + Py_XDECREF(pFunc); + } - // shutdown Python interpreter + // shutdown Python interpreter - if (pyMain && !external_interpreter) { - Py_Finalize(); - } - else { - PyGILState_Release(gstate); + if (!external_interpreter) { + Py_Finalize(); + } + else { + PyGILState_Release(gstate); + } } memory->sfree(pfuncs);