summaryrefslogtreecommitdiffstats
path: root/Doc/api/api.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Doc/api/api.tex')
-rw-r--r--Doc/api/api.tex22
1 files changed, 11 insertions, 11 deletions
diff --git a/Doc/api/api.tex b/Doc/api/api.tex
index a1440f3..2b4bbad 100644
--- a/Doc/api/api.tex
+++ b/Doc/api/api.tex
@@ -1,6 +1,6 @@
\documentstyle[twoside,11pt,myformat]{report}
-\title{Python/C API Reference}
+\title{Python/C API Reference Manual}
\input{boilerplate}
@@ -1058,13 +1058,13 @@ already imported.)
This is the structure type definition for frozen module descriptors,
as generated by the \code{freeze} utility (see \file{Tools/freeze/} in
the Python source distribution). Its definition is:
-\bcode\begin{verbatim}
+\begin{verbatim}
struct _frozen {
char *name;
unsigned char *code;
int size;
};
-\end{verbatim}\ecode
+\end{verbatim}
\end{ctypedesc}
\begin{cvardesc}{struct _frozen *}{PyImport_FrozenModules}
@@ -2047,21 +2047,21 @@ the current thread state must be manipulated explicitly.
This is easy enough in most cases. Most code manipulating the global
interpreter lock has the following simple structure:
-\bcode\begin{verbatim}
+\begin{verbatim}
Save the thread state in a local variable.
Release the interpreter lock.
...Do some blocking I/O operation...
Reacquire the interpreter lock.
Restore the thread state from the local variable.
-\end{verbatim}\ecode
+\end{verbatim}
This is so common that a pair of macros exists to simplify it:
-\bcode\begin{verbatim}
+\begin{verbatim}
Py_BEGIN_ALLOW_THREADS
...Do some blocking I/O operation...
Py_END_ALLOW_THREADS
-\end{verbatim}\ecode
+\end{verbatim}
The BEGIN macro opens a new block and declares a hidden local
variable; the END macro closes the block. Another advantage of using
@@ -2072,19 +2072,19 @@ manipulations.
When thread support is enabled, the block above expands to the
following code:
-\bcode\begin{verbatim}
+\begin{verbatim}
{
PyThreadState *_save;
_save = PyEval_SaveThread();
...Do some blocking I/O operation...
PyEval_RestoreThread(_save);
}
-\end{verbatim}\ecode
+\end{verbatim}
Using even lower level primitives, we can get roughly the same effect
as follows:
-\bcode\begin{verbatim}
+\begin{verbatim}
{
PyThreadState *_save;
_save = PyThreadState_Swap(NULL);
@@ -2093,7 +2093,7 @@ as follows:
PyEval_AcquireLock();
PyThreadState_Swap(_save);
}
-\end{verbatim}\ecode
+\end{verbatim}
There are some subtle differences; in particular,
\code{PyEval_RestoreThread()} saves and restores the value of the