summaryrefslogtreecommitdiffstats
path: root/Doc/api
diff options
context:
space:
mode:
authorTim Peters <tim.peters@gmail.com>2004-10-11 02:40:51 (GMT)
committerTim Peters <tim.peters@gmail.com>2004-10-11 02:40:51 (GMT)
commit7f468f29f49786988e4f1a005174578fc83c7eb9 (patch)
tree0a675ca5df1a5df96404213998dc51672394328e /Doc/api
parent89c0ec9beba4e6b086e74345bc1ef15041bd5e7d (diff)
downloadcpython-7f468f29f49786988e4f1a005174578fc83c7eb9.zip
cpython-7f468f29f49786988e4f1a005174578fc83c7eb9.tar.gz
cpython-7f468f29f49786988e4f1a005174578fc83c7eb9.tar.bz2
SF patch 1044089: New C API function PyEval_ThreadsInitialized(), by Nick
Coghlan, for determining whether PyEval_InitThreads() has been called. Also purged the undocumented+unused _PyThread_Started int.
Diffstat (limited to 'Doc/api')
-rw-r--r--Doc/api/init.tex16
1 files changed, 12 insertions, 4 deletions
diff --git a/Doc/api/init.tex b/Doc/api/init.tex
index ba96124..764c932 100644
--- a/Doc/api/init.tex
+++ b/Doc/api/init.tex
@@ -24,7 +24,7 @@
\end{cfuncdesc}
\begin{cfuncdesc}{void}{Py_InitializeEx}{int initsigs}
- This function works like \cfunction{Py_Initialize} if
+ This function works like \cfunction{Py_Initialize()} if
\var{initsigs} is 1. If \var{initsigs} is 0, it skips
initialization registration of signal handlers, which
might be useful when Python is embedded. \versionadded{2.4}
@@ -517,14 +517,14 @@ for calling into Python from a C thread is
This is a common situation (most Python programs do not use
threads), and the lock operations slow the interpreter down a bit.
Therefore, the lock is not created initially. This situation is
- equivalent to having acquired the lock: when there is only a single
+ equivalent to having acquired the lock: when there is only a single
thread, all object accesses are safe. Therefore, when this function
initializes the lock, it also acquires it. Before the Python
\module{thread}\refbimodindex{thread} module creates a new thread,
knowing that either it has the lock or the lock hasn't been created
yet, it calls \cfunction{PyEval_InitThreads()}. When this call
- returns, it is guaranteed that the lock has been created and that it
- has acquired it.
+ returns, it is guaranteed that the lock has been created and that the
+ calling thread has acquired it.
It is \strong{not} safe to call this function when it is unknown
which thread (if any) currently has the global interpreter lock.
@@ -533,6 +533,14 @@ for calling into Python from a C thread is
compile time.
\end{cfuncdesc}
+\begin{cfuncdesc}{int}{PyEval_ThreadsInitialized}{}
+ Returns a non-zero value if \cfunction{PyEval_InitThreads()} has been
+ called. This function can be called without holding the lock, and
+ therefore can be used to avoid calls to the locking API when running
+ single-threaded. This function is not available when thread support
+ is disabled at compile time. \versionadded{2.4}
+\end{cfuncdesc}
+
\begin{cfuncdesc}{void}{PyEval_AcquireLock}{}
Acquire the global interpreter lock. The lock must have been
created earlier. If this thread already has the lock, a deadlock