summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin v. Löwis <martin@v.loewis.de>2004-08-19 11:31:58 (GMT)
committerMartin v. Löwis <martin@v.loewis.de>2004-08-19 11:31:58 (GMT)
commit336e85f56a87f2216855ca8a5771755f480ae7db (patch)
treeac9ca920703def475db825308caa688f3bd6b475
parent4d4dfb7a2b3bf4ed49a9f72ae8b802280b4e6154 (diff)
downloadcpython-336e85f56a87f2216855ca8a5771755f480ae7db.zip
cpython-336e85f56a87f2216855ca8a5771755f480ae7db.tar.gz
cpython-336e85f56a87f2216855ca8a5771755f480ae7db.tar.bz2
Patch #900727: Add Py_InitializeEx to allow embedding without signals.
-rw-r--r--Doc/api/init.tex7
-rw-r--r--Include/pythonrun.h1
-rw-r--r--Misc/NEWS2
-rw-r--r--Python/pythonrun.c12
4 files changed, 20 insertions, 2 deletions
diff --git a/Doc/api/init.tex b/Doc/api/init.tex
index 4057f2f..ba96124 100644
--- a/Doc/api/init.tex
+++ b/Doc/api/init.tex
@@ -23,6 +23,13 @@
no return value; it is a fatal error if the initialization fails.
\end{cfuncdesc}
+\begin{cfuncdesc}{void}{Py_InitializeEx}{int initsigs}
+ 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}
+\end{cfuncdesc}
+
\begin{cfuncdesc}{int}{Py_IsInitialized}{}
Return true (nonzero) when the Python interpreter has been
initialized, false (zero) if not. After \cfunction{Py_Finalize()}
diff --git a/Include/pythonrun.h b/Include/pythonrun.h
index 88ceea3..145c009 100644
--- a/Include/pythonrun.h
+++ b/Include/pythonrun.h
@@ -23,6 +23,7 @@ PyAPI_FUNC(void) Py_SetPythonHome(char *);
PyAPI_FUNC(char *) Py_GetPythonHome(void);
PyAPI_FUNC(void) Py_Initialize(void);
+PyAPI_FUNC(void) Py_InitializeEx(int);
PyAPI_FUNC(void) Py_Finalize(void);
PyAPI_FUNC(int) Py_IsInitialized(void);
PyAPI_FUNC(PyThreadState *) Py_NewInterpreter(void);
diff --git a/Misc/NEWS b/Misc/NEWS
index f8f5088..1c72294 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -12,6 +12,8 @@ What's New in Python 2.4 alpha 3?
Core and builtins
-----------------
+- Py_InitializeEx has been added.
+
- Fix the order of application of decorators. The proper order is bottom-up;
the first decorator listed is the last one called.
diff --git a/Python/pythonrun.c b/Python/pythonrun.c
index 4d03229..917f2be 100644
--- a/Python/pythonrun.c
+++ b/Python/pythonrun.c
@@ -131,7 +131,7 @@ add_flag(int flag, const char *envs)
}
void
-Py_Initialize(void)
+Py_InitializeEx(int install_sigs)
{
PyInterpreterState *interp;
PyThreadState *tstate;
@@ -208,7 +208,8 @@ Py_Initialize(void)
_PyImportHooks_Init();
- initsigs(); /* Signal handling stuff, including initintr() */
+ if (install_sigs)
+ initsigs(); /* Signal handling stuff, including initintr() */
initmain(); /* Module __main__ */
if (!Py_NoSiteFlag)
@@ -276,6 +277,13 @@ Py_Initialize(void)
#endif
}
+void
+Py_Initialize(void)
+{
+ Py_InitializeEx(1);
+}
+
+
#ifdef COUNT_ALLOCS
extern void dump_counts(void);
#endif