cpython/Doc/c-api
Kirill Podoprigora bee112a94d
gh-124872: Replace enter/exit events with "switched" (#125532)
Users want to know when the current context switches to a different
context object.  Right now this happens when and only when a context
is entered or exited, so the enter and exit events are synonymous with
"switched".  However, if the changes proposed for gh-99633 are
implemented, the current context will also switch for reasons other
than context enter or exit.  Since users actually care about context
switches and not enter or exit, replace the enter and exit events with
a single switched event.

The former exit event was emitted just before exiting the context.
The new switched event is emitted after the context is exited to match
the semantics users expect of an event with a past-tense name.  If
users need the ability to clean up before the switch takes effect,
another event type can be added in the future.  It is not added here
because YAGNI.

I skipped 0 in the enum as a matter of practice.  Skipping 0 makes it
easier to troubleshoot when code forgets to set zeroed memory, and it
aligns with best practices for other tools (e.g.,
https://protobuf.dev/programming-guides/dos-donts/#unspecified-enum).

Co-authored-by: Richard Hansen <rhansen@rhansen.org>
Co-authored-by: Victor Stinner <vstinner@python.org>
2024-10-16 13:53:21 +02:00
..
abstract.rst
allocation.rst Update PyObject_Del() documentation (#122597) 2024-08-02 12:13:33 +02:00
apiabiversion.rst
arg.rst gh-121905: Consistently use "floating-point" instead of "floating point" (GH-121907) 2024-07-19 08:06:02 +00:00
bool.rst
buffer.rst gh-123609: Clarify usage of standalone `PyBUF_FORMAT` (GH-123778) 2024-09-10 15:05:28 +02:00
bytearray.rst gh-122623: Improve `c-api/bytearray.rst` with error handling info (#122624) 2024-08-04 00:55:47 +03:00
bytes.rst gh-121645: Fix typo in PyBytes_Join() doc (#123783) 2024-09-06 16:08:17 +02:00
call.rst
capsule.rst
cell.rst gh-121533: Improve `PyCell_[Get,Set]` docs: mention the exceptions (#121534) 2024-07-09 18:47:35 +03:00
code.rst gh-70870: Clarify dual usage of 'free variable' (#122545) 2024-10-08 07:52:12 +00:00
codec.rst
complex.rst gh-119771: Set errno on overflows in _Py_c_pow() (#120256) 2024-09-18 10:39:11 +02:00
concrete.rst
contextvars.rst gh-124872: Replace enter/exit events with "switched" (#125532) 2024-10-16 13:53:21 +02:00
conversion.rst
coro.rst
datetime.rst gh-123517: Remove unnecessary ``:meth:`` parentheses (#123518) 2024-09-01 05:59:42 +01:00
descriptor.rst
dict.rst Fix phrasing in paragraphs with leading "similar" (#121135) 2024-07-01 17:36:27 -07:00
exceptions.rst gh-101100: Add a table of class attributes to the "Custom classes" section of the data model docs (#124480) 2024-09-25 19:29:58 +00:00
file.rst
float.rst gh-121905: Consistently use "floating-point" instead of "floating point" (GH-121907) 2024-07-19 08:06:02 +00:00
frame.rst gh-74929: PEP 667 general docs update (gh-119201) 2024-05-21 03:32:15 +00:00
function.rst
gcsupport.rst
gen.rst
hash.rst gh-122854: Add Py_HashBuffer() function (#122855) 2024-08-30 15:42:27 +00:00
import.rst gh-101100: Consolidate documentation on `ModuleType` attributes (#124709) 2024-10-09 10:53:57 +00:00
index.rst
init.rst Python 3.14.0a1 2024-10-15 22:34:54 +03:00
init_config.rst gh-125517: Fix unreachable code warnings in `_testembed.c` (#125518) 2024-10-15 13:12:32 +00:00
intro.rst
iter.rst gh-105201: Add PyIter_NextItem() (#122331) 2024-08-08 00:47:15 +02:00
iterator.rst
list.rst gh-121403: Add notes for PyList_GetXXX APIs about the need for init (gh-121626) 2024-07-16 10:16:41 +09:00
long.rst Python 3.14.0a1 2024-10-15 22:34:54 +03:00
mapping.rst
marshal.rst gh-121905: Consistently use "floating-point" instead of "floating point" (GH-121907) 2024-07-19 08:06:02 +00:00
memory.rst gh-119802: Update memory management docs for free-threaded build (gh-124006) 2024-09-13 15:15:44 +00:00
memoryview.rst
method.rst
module.rst gh-101100: Consolidate documentation on `ModuleType` attributes (#124709) 2024-10-09 10:53:57 +00:00
monitoring.rst GH-109975: Copyedit 3.13 What's New: C API (#124313) 2024-09-23 14:28:17 +01:00
none.rst
number.rst gh-121905: Consistently use "floating-point" instead of "floating point" (GH-121907) 2024-07-19 08:06:02 +00:00
object.rst gh-101100: Add a table of class attributes to the "Custom classes" section of the data model docs (#124480) 2024-09-25 19:29:58 +00:00
objimpl.rst
perfmaps.rst
refcounting.rst Use pep role instead of url (#121611) 2024-09-17 16:02:14 +03:00
reflection.rst gh-118934: Fix PyEval_GetLocals docs (PEP 667) (#119932) 2024-06-02 04:44:29 +00:00
sequence.rst
set.rst
slice.rst gh-121567: Improve `slice` C-API docs by mentioning exceptions (#121568) 2024-07-10 13:56:44 +03:00
stable.rst
structures.rst gh-123465: Allow Py_RELATIVE_OFFSET for __*offset__ members (GH-123474) 2024-09-05 14:14:05 +02:00
sys.rst
time.rst GH-109975: Copyedit 3.13 What's New: C API (#124313) 2024-09-23 14:28:17 +01:00
tuple.rst gh-124182: Explain naming rules for struct sequence types (#124335) 2024-10-07 19:52:34 +02:00
type.rst gh-101100: Add a table of class attributes to the "Custom classes" section of the data model docs (#124480) 2024-09-25 19:29:58 +00:00
typehints.rst
typeobj.rst gh-101100: Add a table of class attributes to the "Custom classes" section of the data model docs (#124480) 2024-09-25 19:29:58 +00:00
unicode.rst Python 3.14.0a1 2024-10-15 22:34:54 +03:00
utilities.rst
veryhigh.rst bpo-34206: Improve docs and test coverage for pre-init functions (#8023) 2024-10-08 08:34:11 +00:00
weakref.rst gh-118789: Add `PyUnstable_Object_ClearWeakRefsNoCallbacks` (#118807) 2024-06-18 09:57:23 -04:00