diff options
author | Martin v. Löwis <martin@v.loewis.de> | 2004-08-19 11:31:58 (GMT) |
---|---|---|
committer | Martin v. Löwis <martin@v.loewis.de> | 2004-08-19 11:31:58 (GMT) |
commit | 336e85f56a87f2216855ca8a5771755f480ae7db (patch) | |
tree | ac9ca920703def475db825308caa688f3bd6b475 | |
parent | 4d4dfb7a2b3bf4ed49a9f72ae8b802280b4e6154 (diff) | |
download | cpython-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.tex | 7 | ||||
-rw-r--r-- | Include/pythonrun.h | 1 | ||||
-rw-r--r-- | Misc/NEWS | 2 | ||||
-rw-r--r-- | Python/pythonrun.c | 12 |
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); @@ -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 |