Added clear cache methods to clear the internal type lookup cache for ref leak test runs.

This commit is contained in:
Christian Heimes 2008-01-27 23:34:59 +00:00
parent 3ea7b41b58
commit 908caac52e
8 changed files with 55 additions and 0 deletions

View file

@ -377,6 +377,9 @@ Py_Finalize(void)
Py_XDECREF(warnings_module);
warnings_module = NULL;
/* Clear type lookup cache */
PyType_ClearCache();
/* Collect garbage. This may call finalizers; it's nice to call these
* before all modules are destroyed.
* XXX If a __del__ or weakref callback is triggered here, and tries to

View file

@ -754,6 +754,17 @@ a 11-tuple where the entries in the tuple are counts of:\n\
10. Number of stack pops performed by call_function()"
);
static PyObject *
sys_cleartypecache(PyObject* self, PyObject* args)
{
PyType_ClearCache();
Py_RETURN_NONE;
}
PyDoc_STRVAR(cleartypecache_doc,
"_cleartypecache() -> None\n\
Clear the internal type lookup cache.");
#ifdef __cplusplus
extern "C" {
#endif
@ -776,6 +787,8 @@ static PyMethodDef sys_methods[] = {
/* Might as well keep this in alphabetic order */
{"callstats", (PyCFunction)PyEval_GetCallStats, METH_NOARGS,
callstats_doc},
{"_cleartypecache", sys_cleartypecache, METH_NOARGS,
cleartypecache_doc},
{"_current_frames", sys_current_frames, METH_NOARGS,
current_frames_doc},
{"displayhook", sys_displayhook, METH_O, displayhook_doc},