bpo-41713: Port _signal module to multi-phase init by vstinner · Pull Request #23355 · python/cpython
static int signal_exec(PyObject *m) signal_module_exec(PyObject *m) { assert(!PyErr_Occurred());
// Instal Python SIGINT handler which raises KeyboardInterrupt
static struct PyModuleDef signalmodule = { static PyModuleDef_Slot signal_slots[] = { {Py_mod_exec, signal_module_exec}, {0, NULL} };
static struct PyModuleDef signal_module = { PyModuleDef_HEAD_INIT, "_signal", .m_doc = module_doc, .m_size = -1, .m_size = 0, .m_methods = signal_methods, .m_slots = signal_slots, };
PyMODINIT_FUNC PyInit__signal(void) { PyObject *mod = PyModule_Create(&signalmodule); if (mod == NULL) { return NULL; }
if (signal_exec(mod) < 0) { Py_DECREF(mod); return NULL; } return mod; return PyModuleDef_Init(&signal_module); }