diff --git a/psycopg/psycopgmodule.c b/psycopg/psycopgmodule.c index 5deaa16..f35d574 100644 --- a/psycopg/psycopgmodule.c +++ b/psycopg/psycopgmodule.c @@ -677,6 +677,10 @@ psyco_set_error(PyObject *exc, cursorObject *curs, const char *msg) static int psyco_is_main_interp(void) { +#if PY_VERSION_HEX >= 0x03080000 + /* tested with Python 3.8.0a2 */ + return _PyInterpreterState_Get() == PyInterpreterState_Main(); +#else static PyInterpreterState *main_interp = NULL; /* Cached reference */ PyInterpreterState *interp; @@ -692,6 +696,7 @@ psyco_is_main_interp(void) main_interp = interp; assert (main_interp); return psyco_is_main_interp(); +#endif }