Terminate espeak on module free

This commit is contained in:
Kovid Goyal 2025-07-23 22:25:35 +05:30
parent 7dfc7340a6
commit d2ead9eaaa
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -110,11 +110,21 @@ static PyModuleDef_Slot slots[] = { {Py_mod_exec, (void*)exec_module}, {0, NULL}
static struct PyModuleDef module_def = {PyModuleDef_HEAD_INIT}; static struct PyModuleDef module_def = {PyModuleDef_HEAD_INIT};
static void
cleanup_module(void*) {
if (initialized) {
initialized = false;
voice_set = false;
espeak_Terminate();
}
}
CALIBRE_MODINIT_FUNC PyInit_piper(void) { CALIBRE_MODINIT_FUNC PyInit_piper(void) {
module_def.m_name = "piper"; module_def.m_name = "piper";
module_def.m_slots = slots; module_def.m_slots = slots;
module_def.m_doc = doc; module_def.m_doc = doc;
module_def.m_methods = methods; module_def.m_methods = methods;
module_def.m_free = cleanup_module;
return PyModuleDef_Init(&module_def); return PyModuleDef_Init(&module_def);
} }
// }}} // }}}