summaryrefslogtreecommitdiffstats
path: root/Include/internal
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@python.org>2023-07-04 09:41:43 (GMT)
committerGitHub <noreply@github.com>2023-07-04 09:41:43 (GMT)
commitc9ce983ae1a361f431a0303aeb6f4b8e1d674275 (patch)
treee5e6dae3885a270ffeea975ff03462c186af68c9 /Include/internal
parent8a73b57b9b5f6e36dd5a4c279f4d606d9e71a31f (diff)
downloadcpython-c9ce983ae1a361f431a0303aeb6f4b8e1d674275.zip
cpython-c9ce983ae1a361f431a0303aeb6f4b8e1d674275.tar.gz
cpython-c9ce983ae1a361f431a0303aeb6f4b8e1d674275.tar.bz2
gh-106320: Remove private pylifecycle.h functions (#106400)
Remove private pylifecycle.h functions: move them to the internal C API ( pycore_atexit.h, pycore_pylifecycle.h and pycore_signal.h). No longer export most of these functions. Move _testcapi.test_atexit() to _testinternalcapi.
Diffstat (limited to 'Include/internal')
-rw-r--r--Include/internal/pycore_atexit.h7
-rw-r--r--Include/internal/pycore_pylifecycle.h41
-rw-r--r--Include/internal/pycore_signal.h4
3 files changed, 39 insertions, 13 deletions
diff --git a/Include/internal/pycore_atexit.h b/Include/internal/pycore_atexit.h
index 63a2cd5..fc5cb6d 100644
--- a/Include/internal/pycore_atexit.h
+++ b/Include/internal/pycore_atexit.h
@@ -25,7 +25,8 @@ struct _atexit_runtime_state {
//###################
// interpreter atexit
-struct atexit_callback;
+typedef void (*atexit_datacallbackfunc)(void *);
+
typedef struct atexit_callback {
atexit_datacallbackfunc func;
void *data;
@@ -50,6 +51,10 @@ struct atexit_state {
int callback_len;
};
+PyAPI_FUNC(int) _Py_AtExit(
+ PyInterpreterState *interp,
+ atexit_datacallbackfunc func,
+ void *data);
#ifdef __cplusplus
}
diff --git a/Include/internal/pycore_pylifecycle.h b/Include/internal/pycore_pylifecycle.h
index b07c2db..fb28652 100644
--- a/Include/internal/pycore_pylifecycle.h
+++ b/Include/internal/pycore_pylifecycle.h
@@ -23,7 +23,7 @@ extern PyStatus _PyUnicode_InitEncodings(PyThreadState *tstate);
extern int _PyUnicode_EnableLegacyWindowsFSEncoding(void);
#endif
-PyAPI_FUNC(int) _Py_IsLocaleCoercionTarget(const char *ctype_loc);
+extern int _Py_IsLocaleCoercionTarget(const char *ctype_loc);
/* Various one-time initializers */
@@ -67,30 +67,49 @@ extern PyStatus _PyGILState_Init(PyInterpreterState *interp);
extern PyStatus _PyGILState_SetTstate(PyThreadState *tstate);
extern void _PyGILState_Fini(PyInterpreterState *interp);
-PyAPI_FUNC(void) _PyGC_DumpShutdownStats(PyInterpreterState *interp);
+extern void _PyGC_DumpShutdownStats(PyInterpreterState *interp);
-PyAPI_FUNC(PyStatus) _Py_PreInitializeFromPyArgv(
+extern PyStatus _Py_PreInitializeFromPyArgv(
const PyPreConfig *src_config,
const struct _PyArgv *args);
-PyAPI_FUNC(PyStatus) _Py_PreInitializeFromConfig(
+extern PyStatus _Py_PreInitializeFromConfig(
const PyConfig *config,
const struct _PyArgv *args);
-PyAPI_FUNC(wchar_t *) _Py_GetStdlibDir(void);
+extern wchar_t * _Py_GetStdlibDir(void);
-PyAPI_FUNC(int) _Py_HandleSystemExit(int *exitcode_p);
+extern int _Py_HandleSystemExit(int *exitcode_p);
-PyAPI_FUNC(PyObject*) _PyErr_WriteUnraisableDefaultHook(PyObject *unraisable);
+extern PyObject* _PyErr_WriteUnraisableDefaultHook(PyObject *unraisable);
-PyAPI_FUNC(void) _PyErr_Print(PyThreadState *tstate);
-PyAPI_FUNC(void) _PyErr_Display(PyObject *file, PyObject *exception,
+extern void _PyErr_Print(PyThreadState *tstate);
+extern void _PyErr_Display(PyObject *file, PyObject *exception,
PyObject *value, PyObject *tb);
-PyAPI_FUNC(void) _PyErr_DisplayException(PyObject *file, PyObject *exc);
+extern void _PyErr_DisplayException(PyObject *file, PyObject *exc);
-PyAPI_FUNC(void) _PyThreadState_DeleteCurrent(PyThreadState *tstate);
+extern void _PyThreadState_DeleteCurrent(PyThreadState *tstate);
extern void _PyAtExit_Call(PyInterpreterState *interp);
+extern int _Py_IsCoreInitialized(void);
+
+extern int _Py_FdIsInteractive(FILE *fp, PyObject *filename);
+
+extern const char* _Py_gitidentifier(void);
+extern const char* _Py_gitversion(void);
+
+extern int _Py_IsFinalizing(void);
+PyAPI_FUNC(int) _Py_IsInterpreterFinalizing(PyInterpreterState *interp);
+
+/* Random */
+extern int _PyOS_URandom(void *buffer, Py_ssize_t size);
+PyAPI_FUNC(int) _PyOS_URandomNonblock(void *buffer, Py_ssize_t size);
+
+/* Legacy locale support */
+extern int _Py_CoerceLegacyLocale(int warn);
+extern int _Py_LegacyLocaleDetected(int warn);
+PyAPI_FUNC(char*) _Py_SetLocaleFromEnv(int category);
+
#ifdef __cplusplus
}
#endif
diff --git a/Include/internal/pycore_signal.h b/Include/internal/pycore_signal.h
index ca3f69d..1a454ba 100644
--- a/Include/internal/pycore_signal.h
+++ b/Include/internal/pycore_signal.h
@@ -11,10 +11,12 @@ extern "C" {
#endif
#include "pycore_atomic.h" // _Py_atomic_address
-
#include <signal.h> // NSIG
+/* Restore signals that the interpreter has called SIG_IGN on to SIG_DFL. */
+PyAPI_FUNC(void) _Py_RestoreSignals(void);
+
#ifdef _SIG_MAXSIG
// gh-91145: On FreeBSD, <signal.h> defines NSIG as 32: it doesn't include
// realtime signals: [SIGRTMIN,SIGRTMAX]. Use _SIG_MAXSIG instead. For