aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Include/internal/pycore_interp_structs.h
diff options
context:
space:
mode:
authorNeil Schemenauer <nas-github@arctrix.com>2025-04-09 16:18:54 -0700
committerGitHub <noreply@github.com>2025-04-09 16:18:54 -0700
commitd687900f98114bb5910daad9553ae381d7daf94b (patch)
tree6f7c31164aa867d1bbf8c82f5eeb4cb9129dd3b0 /Include/internal/pycore_interp_structs.h
parente5237541a098e32a70fc621dee08721a72be7eb8 (diff)
downloadcpython-d687900f98114bb5910daad9553ae381d7daf94b.tar.gz
cpython-d687900f98114bb5910daad9553ae381d7daf94b.zip
gh-128384: Use a context variable for warnings.catch_warnings (gh-130010)
Make `warnings.catch_warnings()` use a context variable for holding the warning filtering state if the `sys.flags.context_aware_warnings` flag is set to true. This makes using the context manager thread-safe in multi-threaded programs. Add the `sys.flags.thread_inherit_context` flag. If true, starting a new thread with `threading.Thread` will use a copy of the context from the caller of `Thread.start()`. Both these flags are set to true by default for the free-threaded build and false for the default build. Move the Python implementation of warnings.py into _py_warnings.py. Make _contextvars a builtin module. Co-authored-by: Kumar Aditya <kumaraditya@python.org>
Diffstat (limited to 'Include/internal/pycore_interp_structs.h')
-rw-r--r--Include/internal/pycore_interp_structs.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/Include/internal/pycore_interp_structs.h b/Include/internal/pycore_interp_structs.h
index 44a4231fbc5..573b56a57e1 100644
--- a/Include/internal/pycore_interp_structs.h
+++ b/Include/internal/pycore_interp_structs.h
@@ -582,6 +582,7 @@ struct _warnings_runtime_state {
PyObject *default_action; /* String */
_PyRecursiveMutex lock;
long filters_version;
+ PyObject *context;
};
struct _Py_mem_interp_free_queue {