mirror of
https://github.com/python/cpython.git
synced 2025-07-09 20:35:26 +00:00
added Py_AtExit() -- register cleanup functions for C modules
This commit is contained in:
parent
9776adf565
commit
1662dd5a3d
1 changed files with 16 additions and 0 deletions
|
@ -466,6 +466,19 @@ fatal(msg)
|
|||
int threads_started = 0; /* Set by threadmodule.c and maybe others */
|
||||
#endif
|
||||
|
||||
#define NEXITFUNCS 32
|
||||
static void (*exitfuncs[NEXITFUNCS])();
|
||||
static int nexitfuncs = 0;
|
||||
|
||||
int Py_AtExit(func)
|
||||
void (*func) PROTO((void));
|
||||
{
|
||||
if (nexitfuncs >= NEXITFUNCS)
|
||||
return -1;
|
||||
exitfuncs[nexitfuncs++] = func;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
cleanup()
|
||||
{
|
||||
|
@ -489,6 +502,9 @@ cleanup()
|
|||
}
|
||||
|
||||
flushline();
|
||||
|
||||
while (nexitfuncs > 0)
|
||||
(*exitfuncs[--nexitfuncs])();
|
||||
}
|
||||
|
||||
#ifdef COUNT_ALLOCS
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue