static int atexit_exec(PyObject *m) { atexitmodule_state *modstate; modstate = GET_ATEXIT_STATE(m); modstate->callback_len = 32; modstate->ncallbacks = 0; modstate->atexit_callbacks = PyMem_New(atexit_callback*, modstate->callback_len); if (modstate->atexit_callbacks == NULL) return -1; _Py_PyAtExit(atexit_callfuncs, m); return 0; }
PyMODINIT_FUNC PyInit_atexit(void) { PyObject *m; atexitmodule_state *modstate; m = PyModule_Create(&atexitmodule); if (m == NULL) return NULL; modstate = GET_ATEXIT_STATE(m); modstate->callback_len = 32; modstate->ncallbacks = 0; modstate->atexit_callbacks = PyMem_New(atexit_callback*, modstate->callback_len); if (modstate->atexit_callbacks == NULL) return NULL; _Py_PyAtExit(atexit_callfuncs); return m; }