https://github.com/python/cpython/commit/d51be28876ac0715b6fc674ef41618d214021348
commit: d51be28876ac0715b6fc674ef41618d214021348
branch: main
author: Alper <[email protected]>
committer: colesbury <[email protected]>
date: 2025-10-22T11:16:28-04:00
summary:
gh-116738: Add critical section to dbm/gdbm context manager (gh-140391)
files:
M Modules/_dbmmodule.c
M Modules/_gdbmmodule.c
diff --git a/Modules/_dbmmodule.c b/Modules/_dbmmodule.c
index 06712015418cbc..f88861fa24423b 100644
--- a/Modules/_dbmmodule.c
+++ b/Modules/_dbmmodule.c
@@ -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[] = {
diff --git a/Modules/_gdbmmodule.c b/Modules/_gdbmmodule.c
index a6e0662ae743e9..72f568ceb06987 100644
--- a/Modules/_gdbmmodule.c
+++ b/Modules/_gdbmmodule.c
@@ -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[] = {
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]