mirror of
https://github.com/python/cpython.git
synced 2025-11-02 03:01:58 +00:00
bpo-46008: Make runtime-global object/type lifecycle functions and state consistent. (gh-29998)
This change is strictly renames and moving code around. It helps in the following ways: * ensures type-related init functions focus strictly on one of the three aspects (state, objects, types) * passes in PyInterpreterState * to all those functions, simplifying work on moving types/objects/state to the interpreter * consistent naming conventions help make what's going on more clear * keeping API related to a type in the corresponding header file makes it more obvious where to look for it https://bugs.python.org/issue46008
This commit is contained in:
parent
d8a464ef03
commit
c8749b5783
38 changed files with 818 additions and 361 deletions
|
|
@ -7,6 +7,32 @@
|
|||
|
||||
#include "pycore_hamt.h" /* PyHamtObject */
|
||||
|
||||
|
||||
/* runtime lifecycle */
|
||||
|
||||
PyStatus _PyContext_InitTypes(PyInterpreterState *);
|
||||
void _PyContext_Fini(PyInterpreterState *);
|
||||
|
||||
|
||||
/* other API */
|
||||
|
||||
#ifndef WITH_FREELISTS
|
||||
// without freelists
|
||||
# define PyContext_MAXFREELIST 0
|
||||
#endif
|
||||
|
||||
#ifndef PyContext_MAXFREELIST
|
||||
# define PyContext_MAXFREELIST 255
|
||||
#endif
|
||||
|
||||
struct _Py_context_state {
|
||||
#if PyContext_MAXFREELIST > 0
|
||||
// List of free PyContext objects
|
||||
PyContext *freelist;
|
||||
int numfree;
|
||||
#endif
|
||||
};
|
||||
|
||||
struct _pycontextobject {
|
||||
PyObject_HEAD
|
||||
PyContext *ctx_prev;
|
||||
|
|
@ -36,7 +62,4 @@ struct _pycontexttokenobject {
|
|||
};
|
||||
|
||||
|
||||
int _PyContext_Init(void);
|
||||
void _PyContext_Fini(PyInterpreterState *interp);
|
||||
|
||||
#endif /* !Py_INTERNAL_CONTEXT_H */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue