https://github.com/python/cpython/commit/46ada1e5e0b8942ea72e748880732a9468be1e92
commit: 46ada1e5e0b8942ea72e748880732a9468be1e92
branch: main
author: Kumar Aditya <[email protected]>
committer: kumaraditya303 <[email protected]>
date: 2025-03-30T11:01:12Z
summary:
gh-127945: acquire critical section around `PyCFuncPtr_call` (#131898)
files:
M Modules/_ctypes/_ctypes.c
diff --git a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c
index 7536d3fdc2b882..59ea579627e56f 100644
--- a/Modules/_ctypes/_ctypes.c
+++ b/Modules/_ctypes/_ctypes.c
@@ -4406,7 +4406,7 @@ _build_result(PyObject *result, PyObject *callargs,
}
static PyObject *
-PyCFuncPtr_call(PyObject *op, PyObject *inargs, PyObject *kwds)
+PyCFuncPtr_call_lock_held(PyObject *op, PyObject *inargs, PyObject *kwds)
{
PyObject *restype;
PyObject *converters;
@@ -4544,6 +4544,16 @@ PyCFuncPtr_call(PyObject *op, PyObject *inargs, PyObject
*kwds)
outmask, inoutmask, numretvals);
}
+static PyObject *
+PyCFuncPtr_call(PyObject *op, PyObject *inargs, PyObject *kwds)
+{
+ PyObject *result;
+ Py_BEGIN_CRITICAL_SECTION(op);
+ result = PyCFuncPtr_call_lock_held(op, inargs, kwds);
+ Py_END_CRITICAL_SECTION();
+ return result;
+}
+
static int
PyCFuncPtr_traverse(PyObject *op, visitproc visit, void *arg)
{
_______________________________________________
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]