gh-116738: Add critical section to dbm/gdbm context manager (gh-140391)

This commit is contained in:
Alper 2025-10-22 08:16:28 -07:00 committed by GitHub
parent a4709e525f
commit d51be28876
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 10 additions and 2 deletions

View file

@ -515,8 +515,12 @@ dbm__enter__(PyObject *self, PyObject *Py_UNUSED(dummy))
static PyObject *
dbm__exit__(PyObject *self, PyObject *Py_UNUSED(args))
{
PyObject *result;
dbmobject *dp = dbmobject_CAST(self);
return _dbm_dbm_close_impl(dp);
Py_BEGIN_CRITICAL_SECTION(self);
result = _dbm_dbm_close_impl(dp);
Py_END_CRITICAL_SECTION();
return result;
}
static PyMethodDef dbm_methods[] = {

View file

@ -690,7 +690,11 @@ gdbm__enter__(PyObject *self, PyObject *args)
static PyObject *
gdbm__exit__(PyObject *self, PyObject *args)
{
return _gdbm_gdbm_close_impl((gdbmobject *)self);
PyObject *result;
Py_BEGIN_CRITICAL_SECTION(self);
result = _gdbm_gdbm_close_impl((gdbmobject *)self);
Py_END_CRITICAL_SECTION();
return result;
}
static PyMethodDef gdbm_methods[] = {