| /* | |
| * C extensions module to test importing multiple modules from one compiled | |
| * file (issue16421). This file defines 3 modules (_testimportmodule, | |
| * foo, bar), only the first one is called the same as the compiled file. | |
| */ | |
| #include "pyconfig.h" // Py_GIL_DISABLED | |
| #ifndef Py_GIL_DISABLED | |
| # define Py_LIMITED_API 0x030d0000 | |
| #endif | |
| #include <Python.h> | |
| static PyModuleDef_Slot shared_slots[] = { | |
| {Py_mod_multiple_interpreters, Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED}, | |
| {Py_mod_gil, Py_MOD_GIL_NOT_USED}, | |
| {0, NULL}, | |
| }; | |
| static struct PyModuleDef _testimportmultiple = { | |
| PyModuleDef_HEAD_INIT, | |
| "_testimportmultiple", | |
| "_testimportmultiple doc", | |
| 0, | |
| NULL, | |
| shared_slots, | |
| NULL, | |
| NULL, | |
| NULL | |
| }; | |
| PyMODINIT_FUNC PyInit__testimportmultiple(void) | |
| { | |
| return PyModuleDef_Init(&_testimportmultiple); | |
| } | |
| static struct PyModuleDef _foomodule = { | |
| PyModuleDef_HEAD_INIT, | |
| "_testimportmultiple_foo", | |
| "_testimportmultiple_foo doc", | |
| 0, | |
| NULL, | |
| shared_slots, | |
| NULL, | |
| NULL, | |
| NULL | |
| }; | |
| PyMODINIT_FUNC PyInit__testimportmultiple_foo(void) | |
| { | |
| return PyModuleDef_Init(&_foomodule); | |
| } | |
| static struct PyModuleDef _barmodule = { | |
| PyModuleDef_HEAD_INIT, | |
| "_testimportmultiple_bar", | |
| "_testimportmultiple_bar doc", | |
| 0, | |
| NULL, | |
| shared_slots, | |
| NULL, | |
| NULL, | |
| NULL | |
| }; | |
| PyMODINIT_FUNC PyInit__testimportmultiple_bar(void){ | |
| return PyModuleDef_Init(&_barmodule); | |
| } |