|
|
#ifndef Py_INTERNAL_CONTEXT_H |
|
|
#define Py_INTERNAL_CONTEXT_H |
|
|
|
|
|
#ifndef Py_BUILD_CORE |
|
|
# error "this header requires Py_BUILD_CORE define" |
|
|
#endif |
|
|
|
|
|
#include "pycore_hamt.h" |
|
|
|
|
|
struct _pycontextobject { |
|
|
PyObject_HEAD |
|
|
PyContext *ctx_prev; |
|
|
PyHamtObject *ctx_vars; |
|
|
PyObject *ctx_weakreflist; |
|
|
int ctx_entered; |
|
|
}; |
|
|
|
|
|
|
|
|
struct _pycontextvarobject { |
|
|
PyObject_HEAD |
|
|
PyObject *var_name; |
|
|
PyObject *var_default; |
|
|
PyObject *var_cached; |
|
|
uint64_t var_cached_tsid; |
|
|
uint64_t var_cached_tsver; |
|
|
Py_hash_t var_hash; |
|
|
}; |
|
|
|
|
|
|
|
|
struct _pycontexttokenobject { |
|
|
PyObject_HEAD |
|
|
PyContext *tok_ctx; |
|
|
PyContextVar *tok_var; |
|
|
PyObject *tok_oldval; |
|
|
int tok_used; |
|
|
}; |
|
|
|
|
|
|
|
|
int _PyContext_Init(void); |
|
|
void _PyContext_Fini(PyInterpreterState *interp); |
|
|
|
|
|
#endif |
|
|
|