diff options
Diffstat (limited to 'Doc/api/api.tex')
-rw-r--r-- | Doc/api/api.tex | 22 |
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 |