diff options
author | Victor Stinner <vstinner@python.org> | 2020-03-26 17:57:32 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-26 17:57:32 (GMT) |
commit | 08faf0016e1ee590c78f64ddb244767c7801866a (patch) | |
tree | 17c3ad20544ec8725838cad831d88147f572a6a9 /Python/pylifecycle.c | |
parent | e0b8101492f6c61dee831425b4d3dae39a953599 (diff) | |
download | cpython-08faf0016e1ee590c78f64ddb244767c7801866a.zip cpython-08faf0016e1ee590c78f64ddb244767c7801866a.tar.gz cpython-08faf0016e1ee590c78f64ddb244767c7801866a.tar.bz2 |
bpo-38644: Add _PySys_Audit() which takes tstate (GH-19180)
Add _PySys_Audit() function to the internal C API: similar to
PySys_Audit(), but requires a mandatory tstate parameter.
Cleanup sys_audit_tstate() code: remove code path for NULL tstate,
since the function exits at entry if tstate is NULL. Remove also code
path for NULL tstate->interp: should_audit() now ensures that it is
not NULL (even if tstate->interp cannot be NULL in practice).
PySys_AddAuditHook() now checks if tstate is not NULL to decide if
tstate can be used or not, and tstate is set to NULL if the runtime
is not initialized yet.
Use _PySys_Audit() in sysmodule.c.
Diffstat (limited to 'Python/pylifecycle.c')
-rw-r--r-- | Python/pylifecycle.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c index 08a727f..4c27738 100644 --- a/Python/pylifecycle.c +++ b/Python/pylifecycle.c @@ -16,6 +16,7 @@ #include "pycore_pylifecycle.h" #include "pycore_pymem.h" #include "pycore_pystate.h" +#include "pycore_sysmodule.h" #include "pycore_traceback.h" #include "grammar.h" #include "node.h" @@ -1409,11 +1410,7 @@ Py_FinalizeEx(void) _PyGC_CollectIfEnabled(); /* Clear all loghooks */ - /* We want minimal exposure of this function, so define the extern - * here. The linker should discover the correct function without - * exporting a symbol. */ - extern void _PySys_ClearAuditHooks(void); - _PySys_ClearAuditHooks(); + _PySys_ClearAuditHooks(tstate); /* Destroy all modules */ _PyImport_Cleanup(tstate); |