RHEL 7: python: Check for _Py_IsFinalizing.

This symbol is not present in Python 2.7 or 3.6.  It's not really
necessary to call this, it just avoids a crash in certain corner cases
when the interpreter is shutting down.  So make the call conditional
on the function existing.

Fixes commit e6f9e0b0f6.
This commit is contained in:
Richard W.M. Jones
2020-03-06 18:59:52 +00:00
parent 6ff1055f40
commit 4e90febbaa
2 changed files with 14 additions and 0 deletions

View File

@@ -121,8 +121,10 @@ guestfs_int_py_event_callback_wrapper (guestfs_h *g,
PyObject *py_r;
int threads_initialized = PyEval_ThreadsInitialized ();
#ifdef HAVE_PY_ISFINALIZING
if (_Py_IsFinalizing ())
return;
#endif
if (threads_initialized)
py_save = PyGILState_Ensure ();