context.h 701 B

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