blob: 59f88f2614e97d9515024da092e580da7c6ae31f [file] [log] [blame]
Yury Selivanovf23746a2018-01-22 19:11:18 -05001#ifndef Py_INTERNAL_CONTEXT_H
2#define Py_INTERNAL_CONTEXT_H
3
4
5#include "internal/hamt.h"
6
7
8struct _pycontextobject {
9 PyObject_HEAD
10 PyContext *ctx_prev;
11 PyHamtObject *ctx_vars;
12 PyObject *ctx_weakreflist;
13 int ctx_entered;
14};
15
16
17struct _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
28struct _pycontexttokenobject {
29 PyObject_HEAD
30 PyContext *tok_ctx;
31 PyContextVar *tok_var;
32 PyObject *tok_oldval;
33 int tok_used;
34};
35
36
37int _PyContext_Init(void);
38void _PyContext_Fini(void);
39
40
41#endif /* !Py_INTERNAL_CONTEXT_H */