/src/cpython/Python/_contextvars.c
Line | Count | Source (jump to first uncovered line) |
1 | | #include "Python.h" |
2 | | |
3 | | #include "clinic/_contextvars.c.h" |
4 | | |
5 | | /*[clinic input] |
6 | | module _contextvars |
7 | | [clinic start generated code]*/ |
8 | | /*[clinic end generated code: output=da39a3ee5e6b4b0d input=a0955718c8b8cea6]*/ |
9 | | |
10 | | |
11 | | /*[clinic input] |
12 | | _contextvars.copy_context |
13 | | [clinic start generated code]*/ |
14 | | |
15 | | static PyObject * |
16 | | _contextvars_copy_context_impl(PyObject *module) |
17 | | /*[clinic end generated code: output=1fcd5da7225c4fa9 input=89bb9ae485888440]*/ |
18 | 0 | { |
19 | 0 | return PyContext_CopyCurrent(); |
20 | 0 | } |
21 | | |
22 | | |
23 | | PyDoc_STRVAR(module_doc, "Context Variables"); |
24 | | |
25 | | static PyMethodDef _contextvars_methods[] = { |
26 | | _CONTEXTVARS_COPY_CONTEXT_METHODDEF |
27 | | {NULL, NULL} |
28 | | }; |
29 | | |
30 | | static int |
31 | | _contextvars_exec(PyObject *m) |
32 | 8 | { |
33 | 8 | if (PyModule_AddType(m, &PyContext_Type) < 0) { |
34 | 0 | return -1; |
35 | 0 | } |
36 | 8 | if (PyModule_AddType(m, &PyContextVar_Type) < 0) { |
37 | 0 | return -1; |
38 | 0 | } |
39 | 8 | if (PyModule_AddType(m, &PyContextToken_Type) < 0) { |
40 | 0 | return -1; |
41 | 0 | } |
42 | 8 | return 0; |
43 | 8 | } |
44 | | |
45 | | static struct PyModuleDef_Slot _contextvars_slots[] = { |
46 | | {Py_mod_exec, _contextvars_exec}, |
47 | | {Py_mod_multiple_interpreters, Py_MOD_PER_INTERPRETER_GIL_SUPPORTED}, |
48 | | {Py_mod_gil, Py_MOD_GIL_NOT_USED}, |
49 | | {0, NULL} |
50 | | }; |
51 | | |
52 | | static struct PyModuleDef _contextvarsmodule = { |
53 | | PyModuleDef_HEAD_INIT, /* m_base */ |
54 | | "_contextvars", /* m_name */ |
55 | | module_doc, /* m_doc */ |
56 | | 0, /* m_size */ |
57 | | _contextvars_methods, /* m_methods */ |
58 | | _contextvars_slots, /* m_slots */ |
59 | | NULL, /* m_traverse */ |
60 | | NULL, /* m_clear */ |
61 | | NULL, /* m_free */ |
62 | | }; |
63 | | |
64 | | PyMODINIT_FUNC |
65 | | PyInit__contextvars(void) |
66 | 8 | { |
67 | 8 | return PyModuleDef_Init(&_contextvarsmodule); |
68 | 8 | } |