diff options
author | Victor Stinner <vstinner@python.org> | 2022-01-21 00:42:25 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-21 00:42:25 (GMT) |
commit | e9e3eab0b868c7d0b48e472705024240d5c39d5c (patch) | |
tree | 65c254d948a37dd822085887ebb84f390ad48d94 /Python/thread.c | |
parent | 27df7566bc19699b967e0e30d7808637b90141f6 (diff) | |
download | cpython-e9e3eab0b868c7d0b48e472705024240d5c39d5c.zip cpython-e9e3eab0b868c7d0b48e472705024240d5c39d5c.tar.gz cpython-e9e3eab0b868c7d0b48e472705024240d5c39d5c.tar.bz2 |
bpo-46417: Finalize structseq types at exit (GH-30645)
Add _PyStructSequence_FiniType() and _PyStaticType_Dealloc()
functions to finalize a structseq static type in Py_Finalize().
Currrently, these functions do nothing if Python is built in release
mode.
Clear static types:
* AsyncGenHooksType: sys.set_asyncgen_hooks()
* FlagsType: sys.flags
* FloatInfoType: sys.float_info
* Hash_InfoType: sys.hash_info
* Int_InfoType: sys.int_info
* ThreadInfoType: sys.thread_info
* UnraisableHookArgsType: sys.unraisablehook
* VersionInfoType: sys.version
* WindowsVersionType: sys.getwindowsversion()
Diffstat (limited to 'Python/thread.c')
-rw-r--r-- | Python/thread.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/Python/thread.c b/Python/thread.c index b1c0cfe..c2457c4 100644 --- a/Python/thread.c +++ b/Python/thread.c @@ -243,3 +243,14 @@ PyThread_GetInfo(void) PyStructSequence_SET_ITEM(threadinfo, pos++, value); return threadinfo; } + + +void +_PyThread_FiniType(PyInterpreterState *interp) +{ + if (!_Py_IsMainInterpreter(interp)) { + return; + } + + _PyStructSequence_FiniType(&ThreadInfoType); +} |