diff options
author | Victor Stinner <vstinner@python.org> | 2020-06-05 00:56:37 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-06-05 00:56:37 (GMT) |
commit | e005ead49b1ee2b1507ceea94e6f89c28ecf1f81 (patch) | |
tree | f2846eec88f5539825acc200c3b8a3d91a3b7d0f /Include/internal/pycore_interp.h | |
parent | 78a02c2568714562e23e885b6dc5730601f35226 (diff) | |
download | cpython-e005ead49b1ee2b1507ceea94e6f89c28ecf1f81.zip cpython-e005ead49b1ee2b1507ceea94e6f89c28ecf1f81.tar.gz cpython-e005ead49b1ee2b1507ceea94e6f89c28ecf1f81.tar.bz2 |
bpo-40521: Make context free list per-interpreter (GH-20644)
Each interpreter now has its own context free list:
* Move context free list into PyInterpreterState.
* Add _Py_context_state structure.
* Add tstate parameter to _PyContext_ClearFreeList()
and _PyContext_Fini().
* Pass tstate to clear_freelists().
Diffstat (limited to 'Include/internal/pycore_interp.h')
-rw-r--r-- | Include/internal/pycore_interp.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/Include/internal/pycore_interp.h b/Include/internal/pycore_interp.h index d624218..4f81102 100644 --- a/Include/internal/pycore_interp.h +++ b/Include/internal/pycore_interp.h @@ -124,6 +124,12 @@ struct _Py_async_gen_state { int asend_numfree; }; +struct _Py_context_state { + // List of free PyContext objects + PyContext *freelist; + int numfree; +}; + /* interpreter state */ @@ -223,6 +229,7 @@ struct _is { struct _Py_float_state float_state; struct _Py_frame_state frame; struct _Py_async_gen_state async_gen; + struct _Py_context_state context; /* Using a cache is very effective since typically only a single slice is created and then deleted again. */ |