bpo-39877: Deprecate PyEval_InitThreads() (GH-18892)
Deprecated PyEval_InitThreads() and PyEval_ThreadsInitialized().
Calling PyEval_InitThreads() now does nothing.
diff --git a/Doc/c-api/init.rst b/Doc/c-api/init.rst
index 14049ee..c34b117 100644
--- a/Doc/c-api/init.rst
+++ b/Doc/c-api/init.rst
@@ -842,12 +842,12 @@
single: PyEval_SaveThread()
single: PyEval_RestoreThread()
- Initialize and acquire the global interpreter lock. It should be called in the
- main thread before creating a second thread or engaging in any other thread
- operations such as ``PyEval_ReleaseThread(tstate)``. It is not needed before
- calling :c:func:`PyEval_SaveThread` or :c:func:`PyEval_RestoreThread`.
+ Deprecated function which does nothing.
- This is a no-op when called for a second time.
+ In Python 3.6 and older, this function created the GIL if it didn't exist.
+
+ .. versionchanged:: 3.9
+ The function now does nothing.
.. versionchanged:: 3.7
This function is now called by :c:func:`Py_Initialize()`, so you don't
@@ -856,6 +856,8 @@
.. versionchanged:: 3.2
This function cannot be called before :c:func:`Py_Initialize()` anymore.
+ .. deprecated-removed:: 3.9 3.11
+
.. index:: module: _thread
@@ -868,6 +870,8 @@
.. versionchanged:: 3.7
The :term:`GIL` is now initialized by :c:func:`Py_Initialize()`.
+ .. deprecated-removed:: 3.9 3.11
+
.. c:function:: PyThreadState* PyEval_SaveThread()