#define _Py_mod_LAST_SLOT 3
#endif
-/* for Py_mod_multiple_interpreters: */
-#define Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED ((void *)0)
-#define Py_MOD_MULTIPLE_INTERPRETERS_SUPPORTED ((void *)1)
-#define Py_MOD_PER_INTERPRETER_GIL_SUPPORTED ((void *)2)
-
#endif /* New in 3.5 */
+/* for Py_mod_multiple_interpreters: */
+#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030c0000
+# define Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED ((void *)0)
+# define Py_MOD_MULTIPLE_INTERPRETERS_SUPPORTED ((void *)1)
+# define Py_MOD_PER_INTERPRETER_GIL_SUPPORTED ((void *)2)
+#endif
+
struct PyModuleDef {
PyModuleDef_Base m_base;
const char* m_name;
pass
*/
-#define Py_LIMITED_API 0x030b0000
+// Need limited C API version 3.12 for Py_MOD_PER_INTERPRETER_GIL_SUPPORTED
+#define Py_LIMITED_API 0x030c0000
#include "Python.h"
#include <string.h>
static PyModuleDef_Slot xx_slots[] = {
{Py_mod_exec, xx_modexec},
- {Py_mod_multiple_interpreters, Py_MOD_PER_INTERPRETER_GIL_SUPPORTED},
{0, NULL}
};