mirror of
https://github.com/python/cpython.git
synced 2025-09-26 10:19:53 +00:00
gh-132993: expose HASHLIB_GIL_MINSIZE
to private extension modules (#132999)
This commit is contained in:
parent
019ee49d50
commit
3695ba93d5
10 changed files with 119 additions and 28 deletions
|
@ -2358,6 +2358,16 @@ hashlib_exception(PyObject *module)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
hashlib_constants(PyObject *module)
|
||||
{
|
||||
if (PyModule_AddIntConstant(module, "_GIL_MINSIZE",
|
||||
HASHLIB_GIL_MINSIZE) < 0)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static PyModuleDef_Slot hashlib_slots[] = {
|
||||
{Py_mod_exec, hashlib_init_hashtable},
|
||||
|
@ -2367,6 +2377,7 @@ static PyModuleDef_Slot hashlib_slots[] = {
|
|||
{Py_mod_exec, hashlib_md_meth_names},
|
||||
{Py_mod_exec, hashlib_init_constructors},
|
||||
{Py_mod_exec, hashlib_exception},
|
||||
{Py_mod_exec, hashlib_constants},
|
||||
{Py_mod_multiple_interpreters, Py_MOD_PER_INTERPRETER_GIL_SUPPORTED},
|
||||
{Py_mod_gil, Py_MOD_GIL_NOT_USED},
|
||||
{0, NULL}
|
||||
|
|
|
@ -229,6 +229,8 @@ blake2_exec(PyObject *m)
|
|||
// good a place as any to probe the CPU flags.
|
||||
detect_cpu_features(&st->flags);
|
||||
|
||||
ADD_INT_CONST("_GIL_MINSIZE", HASHLIB_GIL_MINSIZE);
|
||||
|
||||
st->blake2b_type = (PyTypeObject *)PyType_FromModuleAndSpec(
|
||||
m, &blake2b_type_spec, NULL);
|
||||
|
||||
|
|
|
@ -1679,6 +1679,20 @@ hmacmodule_init_strings(hmacmodule_state *state)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
hmacmodule_init_globals(PyObject *module, hmacmodule_state *state)
|
||||
{
|
||||
#define ADD_INT_CONST(NAME, VALUE) \
|
||||
do { \
|
||||
if (PyModule_AddIntConstant(module, (NAME), (VALUE)) < 0) { \
|
||||
return -1; \
|
||||
} \
|
||||
} while (0)
|
||||
ADD_INT_CONST("_GIL_MINSIZE", HASHLIB_GIL_MINSIZE);
|
||||
#undef ADD_INT_CONST
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
hmacmodule_init_cpu_features(hmacmodule_state *state)
|
||||
{
|
||||
|
@ -1769,6 +1783,9 @@ hmacmodule_exec(PyObject *module)
|
|||
if (hmacmodule_init_strings(state) < 0) {
|
||||
return -1;
|
||||
}
|
||||
if (hmacmodule_init_globals(module, state) < 0) {
|
||||
return -1;
|
||||
}
|
||||
hmacmodule_init_cpu_features(state);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -370,6 +370,9 @@ md5_exec(PyObject *m)
|
|||
if (PyModule_AddObjectRef(m, "MD5Type", (PyObject *)st->md5_type) < 0) {
|
||||
return -1;
|
||||
}
|
||||
if (PyModule_AddIntConstant(m, "_GIL_MINSIZE", HASHLIB_GIL_MINSIZE) < 0) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -383,14 +386,14 @@ static PyModuleDef_Slot _md5_slots[] = {
|
|||
|
||||
|
||||
static struct PyModuleDef _md5module = {
|
||||
PyModuleDef_HEAD_INIT,
|
||||
.m_name = "_md5",
|
||||
.m_size = sizeof(MD5State),
|
||||
.m_methods = MD5_functions,
|
||||
.m_slots = _md5_slots,
|
||||
.m_traverse = _md5_traverse,
|
||||
.m_clear = _md5_clear,
|
||||
.m_free = _md5_free,
|
||||
PyModuleDef_HEAD_INIT,
|
||||
.m_name = "_md5",
|
||||
.m_size = sizeof(MD5State),
|
||||
.m_methods = MD5_functions,
|
||||
.m_slots = _md5_slots,
|
||||
.m_traverse = _md5_traverse,
|
||||
.m_clear = _md5_clear,
|
||||
.m_free = _md5_free,
|
||||
};
|
||||
|
||||
PyMODINIT_FUNC
|
||||
|
|
|
@ -362,8 +362,15 @@ _sha1_exec(PyObject *module)
|
|||
st->sha1_type = (PyTypeObject *)PyType_FromModuleAndSpec(
|
||||
module, &sha1_type_spec, NULL);
|
||||
if (PyModule_AddObjectRef(module,
|
||||
"SHA1Type",
|
||||
(PyObject *)st->sha1_type) < 0) {
|
||||
"SHA1Type",
|
||||
(PyObject *)st->sha1_type) < 0)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
if (PyModule_AddIntConstant(module,
|
||||
"_GIL_MINSIZE",
|
||||
HASHLIB_GIL_MINSIZE) < 0)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
@ -381,14 +388,14 @@ static PyModuleDef_Slot _sha1_slots[] = {
|
|||
};
|
||||
|
||||
static struct PyModuleDef _sha1module = {
|
||||
PyModuleDef_HEAD_INIT,
|
||||
.m_name = "_sha1",
|
||||
.m_size = sizeof(SHA1State),
|
||||
.m_methods = SHA1_functions,
|
||||
.m_slots = _sha1_slots,
|
||||
.m_traverse = _sha1_traverse,
|
||||
.m_clear = _sha1_clear,
|
||||
.m_free = _sha1_free
|
||||
PyModuleDef_HEAD_INIT,
|
||||
.m_name = "_sha1",
|
||||
.m_size = sizeof(SHA1State),
|
||||
.m_methods = SHA1_functions,
|
||||
.m_slots = _sha1_slots,
|
||||
.m_traverse = _sha1_traverse,
|
||||
.m_clear = _sha1_clear,
|
||||
.m_free = _sha1_free
|
||||
};
|
||||
|
||||
PyMODINIT_FUNC
|
||||
|
|
|
@ -894,6 +894,13 @@ static int sha2_exec(PyObject *module)
|
|||
return -1;
|
||||
}
|
||||
|
||||
if (PyModule_AddIntConstant(module,
|
||||
"_GIL_MINSIZE",
|
||||
HASHLIB_GIL_MINSIZE) < 0)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -639,8 +639,10 @@ _sha3_exec(PyObject *m)
|
|||
init_sha3type(shake_256_type, SHAKE256_spec);
|
||||
#undef init_sha3type
|
||||
|
||||
if (PyModule_AddStringConstant(m, "implementation",
|
||||
"HACL") < 0) {
|
||||
if (PyModule_AddStringConstant(m, "implementation", "HACL") < 0) {
|
||||
return -1;
|
||||
}
|
||||
if (PyModule_AddIntConstant(m, "_GIL_MINSIZE", HASHLIB_GIL_MINSIZE) < 0) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue