Corrections

This commit is contained in:
LordGrey 2024-11-15 12:37:43 +01:00
parent 64811f0457
commit d021a1bc77
3 changed files with 7 additions and 2 deletions

View File

@ -15,5 +15,7 @@ private:
PythonInit();
~PythonInit();
#if (PY_VERSION_HEX >= 0x03080000)
void handlePythonError(PyStatus status, PyConfig& config);
#endif
};

View File

@ -57,13 +57,13 @@ static PyObject* hyperion_create(PyModuleDef* def, PyObject* args) {
}
// Module deallocation function to clean up per-interpreter state
static void hyperion_free(void* module)
static void hyperion_free(void* /* module */)
{
// No specific cleanup required in this example
}
static PyModuleDef_Slot hyperion_slots[] = {
{Py_mod_exec, hyperion_exec},
{Py_mod_exec, reinterpret_cast<void*>(hyperion_exec)},
#if (PY_VERSION_HEX >= 0x030C0000)
{Py_mod_multiple_interpreters, Py_MOD_PER_INTERPRETER_GIL_SUPPORTED},
#endif

View File

@ -178,12 +178,14 @@ PythonInit::PythonInit()
}
// Error handling function to replace goto exception
#if (PY_VERSION_HEX >= 0x03080000)
void PythonInit::handlePythonError(PyStatus status, PyConfig& config)
{
Error(Logger::getInstance("DAEMON"), "Initializing Python config failed with error [%s]", status.err_msg);
PyConfig_Clear(&config);
throw std::runtime_error("Initializing Python failed!");
}
#endif
PythonInit::~PythonInit()
{
@ -196,4 +198,5 @@ PythonInit::~PythonInit()
#endif
int rc = Py_FinalizeEx();
Debug(Logger::getInstance("DAEMON"), "Cleaning up Python interpreter %s", rc == 0 ? "succeeded" : "failed");
}