Home | History | Annotate | Download | only in internal
      1 #ifndef Py_INTERNAL_CONTEXT_H
      2 #define Py_INTERNAL_CONTEXT_H
      3 
      4 
      5 #include "internal/hamt.h"
      6 
      7 
      8 struct _pycontextobject {
      9     PyObject_HEAD
     10     PyContext *ctx_prev;
     11     PyHamtObject *ctx_vars;
     12     PyObject *ctx_weakreflist;
     13     int ctx_entered;
     14 };
     15 
     16 
     17 struct _pycontextvarobject {
     18     PyObject_HEAD
     19     PyObject *var_name;
     20     PyObject *var_default;
     21     PyObject *var_cached;
     22     uint64_t var_cached_tsid;
     23     uint64_t var_cached_tsver;
     24     Py_hash_t var_hash;
     25 };
     26 
     27 
     28 struct _pycontexttokenobject {
     29     PyObject_HEAD
     30     PyContext *tok_ctx;
     31     PyContextVar *tok_var;
     32     PyObject *tok_oldval;
     33     int tok_used;
     34 };
     35 
     36 
     37 int _PyContext_Init(void);
     38 void _PyContext_Fini(void);
     39 
     40 
     41 #endif /* !Py_INTERNAL_CONTEXT_H */
     42