From ff8113f8d02dc14f10b99d2e71f17c1a5fd24d52 Mon Sep 17 00:00:00 2001
From: "Andrew M. Kuchling" <amk@amk.ca>
Date: Sat, 10 Jul 2004 13:42:52 +0000
Subject: Replace example with simpler alternative using
 PyGILState_{Ensure,Require).  Can someone please confirm this change is OK?

---
 Doc/api/init.tex | 18 +++++-------------
 1 file changed, 5 insertions(+), 13 deletions(-)

diff --git a/Doc/api/init.tex b/Doc/api/init.tex
index f34e0f0..56d9039 100644
--- a/Doc/api/init.tex
+++ b/Doc/api/init.tex
@@ -470,23 +470,15 @@ Assuming you have access to an interpreter object, the typical idiom
 for calling into Python from a C thread is
 
 \begin{verbatim}
-    PyThreadState *tstate;
-    PyObject *result;
-
-    /* interp is your reference to an interpreter object. */
-    tstate = PyThreadState_New(interp);
-    PyEval_AcquireThread(tstate);
+    PyGILState_STATE gstate;
+    gstate = PyGILState_Ensure();
 
     /* Perform Python actions here.  */
     result = CallSomeFunction();
     /* evaluate result */
 
     /* Release the thread. No Python API allowed beyond this point. */
-    PyEval_ReleaseThread(tstate);
-
-    /* You can either delete the thread state, or save it
-       until you need it the next time. */
-    PyThreadState_Delete(tstate);
+    PyGILState_Release(gstate);
 \end{verbatim}
 
 \begin{ctypedesc}{PyInterpreterState}
@@ -727,8 +719,8 @@ Failure is a fatal error.
 \begin{cfuncdesc}{void}{PyGILState_Release}{PyGILState_STATE}
 Release any resources previously acquired.  After this call, Python's
 state will be the same as it was prior to the corresponding
-\cfunction{PyGILState_Ensure} call (but generally this state will be unknown to 
-the caller, hence the use of the GILState API.)
+\cfunction{PyGILState_Ensure} call (but generally this state will be
+unknown to the caller, hence the use of the GILState API.)
     
 Every call to \cfunction{PyGILState_Ensure()} must be matched by a call to 
 \cfunction{PyGILState_Release()} on the same thread.
-- 
cgit v0.12

