mirror of
https://github.com/python/cpython.git
synced 2025-11-25 21:11:09 +00:00
Added clear cache methods to clear the internal type lookup cache for ref leak test runs.
This commit is contained in:
parent
3ea7b41b58
commit
908caac52e
8 changed files with 55 additions and 0 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue