summaryrefslogtreecommitdiff
path: root/qpid/extras/dispatch/src/python_embedded.c
diff options
context:
space:
mode:
authorTed Ross <tross@apache.org>2013-10-04 21:28:24 +0000
committerTed Ross <tross@apache.org>2013-10-04 21:28:24 +0000
commitd7f7a3933f2b1c0861a2316ff41a6fe2b54f2431 (patch)
treec9387dc2bce14b4f4f49114cc9bd817d7ee80b74 /qpid/extras/dispatch/src/python_embedded.c
parent6f05c50f75c055104275dee247e86f85e7f2711d (diff)
downloadqpid-python-d7f7a3933f2b1c0861a2316ff41a6fe2b54f2431.tar.gz
QPID-4967 - Bug fixes, added a lock to serialize calls into the Python interpreter.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1529307 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/extras/dispatch/src/python_embedded.c')
-rw-r--r--qpid/extras/dispatch/src/python_embedded.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/qpid/extras/dispatch/src/python_embedded.c b/qpid/extras/dispatch/src/python_embedded.c
index c7c8f82dfc..6b235c7406 100644
--- a/qpid/extras/dispatch/src/python_embedded.c
+++ b/qpid/extras/dispatch/src/python_embedded.c
@@ -452,6 +452,7 @@ static void dx_io_rx_handler(void *context, dx_message_t *msg, int link_id)
return;
}
+ sys_mutex_lock(lock);
PyObject *pAP = dx_field_to_py(ap_map);
PyObject *pBody = dx_field_to_py(body_map);
@@ -465,6 +466,7 @@ static void dx_io_rx_handler(void *context, dx_message_t *msg, int link_id)
if (pValue) {
Py_DECREF(pValue);
}
+ sys_mutex_unlock(lock);
}
@@ -658,3 +660,14 @@ static void dx_python_setup()
dispatch_module = m;
}
}
+
+void dx_python_lock()
+{
+ sys_mutex_lock(lock);
+}
+
+void dx_python_unlock()
+{
+ sys_mutex_unlock(lock);
+}
+