pycore_context.h 779 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #ifndef Py_INTERNAL_CONTEXT_H
  2. #define Py_INTERNAL_CONTEXT_H
  3. #ifndef Py_BUILD_CORE
  4. # error "this header requires Py_BUILD_CORE define"
  5. #endif
  6. #include "pycore_hamt.h"
  7. struct _pycontextobject {
  8. PyObject_HEAD
  9. PyContext *ctx_prev;
  10. PyHamtObject *ctx_vars;
  11. PyObject *ctx_weakreflist;
  12. int ctx_entered;
  13. };
  14. struct _pycontextvarobject {
  15. PyObject_HEAD
  16. PyObject *var_name;
  17. PyObject *var_default;
  18. PyObject *var_cached;
  19. uint64_t var_cached_tsid;
  20. uint64_t var_cached_tsver;
  21. Py_hash_t var_hash;
  22. };
  23. struct _pycontexttokenobject {
  24. PyObject_HEAD
  25. PyContext *tok_ctx;
  26. PyContextVar *tok_var;
  27. PyObject *tok_oldval;
  28. int tok_used;
  29. };
  30. int _PyContext_Init(void);
  31. void _PyContext_Fini(void);
  32. #endif /* !Py_INTERNAL_CONTEXT_H */