Patch #900727: Add Py_InitializeEx to allow embedding without signals.

This commit is contained in:
Martin v. Löwis 2004-08-19 11:31:58 +00:00
parent 4d4dfb7a2b
commit 336e85f56a
4 changed files with 20 additions and 2 deletions

View File

@ -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()}

View File

@ -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);

View File

@ -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.

View File

@ -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