mirror of
https://github.com/python/cpython
synced 2026-09-29 12:10:30 +03:00
bpo-40521: Make MemoryError free list per interpreter (GH-21086)
Each interpreter now has its own MemoryError free list: it is not longer shared by all interpreters. Add _Py_exc_state structure and PyInterpreterState.exc_state member. Move also errnomap into _Py_exc_state.
This commit is contained in:
parent
2c6e4e91c5
commit
281cce1106
5 changed files with 58 additions and 39 deletions
|
|
@ -152,6 +152,13 @@ struct _Py_context_state {
|
|||
int numfree;
|
||||
};
|
||||
|
||||
struct _Py_exc_state {
|
||||
// The dict mapping from errno codes to OSError subclasses
|
||||
PyObject *errnomap;
|
||||
PyBaseExceptionObject *memerrors_freelist;
|
||||
int memerrors_numfree;
|
||||
};
|
||||
|
||||
|
||||
/* interpreter state */
|
||||
|
||||
|
|
@ -251,6 +258,7 @@ struct _is {
|
|||
struct _Py_frame_state frame;
|
||||
struct _Py_async_gen_state async_gen;
|
||||
struct _Py_context_state context;
|
||||
struct _Py_exc_state exc_state;
|
||||
};
|
||||
|
||||
/* Used by _PyImport_Cleanup() */
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ extern PyStatus _PySys_Create(
|
|||
extern PyStatus _PySys_ReadPreinitWarnOptions(PyWideStringList *options);
|
||||
extern PyStatus _PySys_ReadPreinitXOptions(PyConfig *config);
|
||||
extern int _PySys_InitMain(PyThreadState *tstate);
|
||||
extern PyStatus _PyExc_Init(void);
|
||||
extern PyStatus _PyExc_Init(PyThreadState *tstate);
|
||||
extern PyStatus _PyErr_Init(void);
|
||||
extern PyStatus _PyBuiltins_AddExceptions(PyObject * bltinmod);
|
||||
extern PyStatus _PyImportHooks_Init(PyThreadState *tstate);
|
||||
|
|
@ -69,7 +69,7 @@ extern void _PyAsyncGen_Fini(PyThreadState *tstate);
|
|||
|
||||
extern void PyOS_FiniInterrupts(void);
|
||||
|
||||
extern void _PyExc_Fini(void);
|
||||
extern void _PyExc_Fini(PyThreadState *tstate);
|
||||
extern void _PyImport_Fini(void);
|
||||
extern void _PyImport_Fini2(void);
|
||||
extern void _PyGC_Fini(PyThreadState *tstate);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue