Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Add a note in the docs about expectations for Py_Finalize().
  • Loading branch information
ericsnowcurrently committed Jun 21, 2024
commit d0acada50b03a095fe99c966ebbca9cd17c61f0f
13 changes: 10 additions & 3 deletions Doc/c-api/init.rst
Original file line number Diff line number Diff line change
Expand Up @@ -391,9 +391,16 @@ Initializing and finalizing the interpreter
:c:func:`Py_NewInterpreter` below) that were created and not yet destroyed since
the last call to :c:func:`Py_Initialize`. Ideally, this frees all memory
allocated by the Python interpreter. This is a no-op when called for a second
time (without calling :c:func:`Py_Initialize` again first). Normally the
return value is ``0``. If there were errors during finalization
(flushing buffered data), ``-1`` is returned.
time (without calling :c:func:`Py_Initialize` again first).

Since this is the reverse of :c:func:`Py_Initialize`, it should be called
in the same thread with the same interpreter active. That means
the main thread and the main interpreter.
This should never be called while :c:func:`Py_RunMain` is running.

Normally the return value is ``0``.
If there were errors during finalization (flushing buffered data),
``-1`` is returned.

This function is provided for a number of reasons. An embedding application
might want to restart Python without having to restart the application itself.
Expand Down