gst/gstbin.override: Release the GIL in GstBin overrides.

Original commit message from CVS:
* gst/gstbin.override:
Release the GIL in GstBin overrides.
This commit is contained in:
Edward Hervey 2007-04-19 15:43:16 +00:00
parent f77d66033d
commit b235a2c289
3 changed files with 17 additions and 3 deletions

View file

@ -1,3 +1,8 @@
2007-04-19 Edward Hervey <edward@fluendo.com>
* gst/gstbin.override:
Release the GIL in GstBin overrides.
2007-04-13 Jan Schmidt <thaytan@mad.scientist.com> 2007-04-13 Jan Schmidt <thaytan@mad.scientist.com>
* gst/gstelement.override: * gst/gstelement.override:

2
common

@ -1 +1 @@
Subproject commit 9097e252e477e18182f08a032d8860bdee9a0416 Subproject commit 765d03a88492fb4ac81d70457f671f3a109e93de

View file

@ -48,8 +48,13 @@ _wrap_gst_bin_add(PyGObject *self, PyObject *args)
} }
for (i = 0; i < len; i++) { for (i = 0; i < len; i++) {
gboolean rest;
element = (PyGObject*)PyTuple_GetItem(args, i); element = (PyGObject*)PyTuple_GetItem(args, i);
if (!gst_bin_add(GST_BIN(self->obj), GST_ELEMENT(element->obj))) { pyg_begin_allow_threads;
rest = gst_bin_add(GST_BIN(self->obj), GST_ELEMENT(element->obj));
pyg_end_allow_threads;
if (!rest) {
PyErr_Format(PyGstExc_AddError, "Could not add element '%s'", GST_OBJECT_NAME(element->obj)); PyErr_Format(PyGstExc_AddError, "Could not add element '%s'", GST_OBJECT_NAME(element->obj));
return NULL; return NULL;
} }
@ -94,8 +99,12 @@ _wrap_gst_bin_remove(PyGObject *self, PyObject *args)
} }
for (i = 0; i < len; i++) { for (i = 0; i < len; i++) {
gboolean rest;
element = (PyGObject*)PyTuple_GetItem(args, i); element = (PyGObject*)PyTuple_GetItem(args, i);
if (!gst_bin_remove(GST_BIN(self->obj), GST_ELEMENT(element->obj))) { pyg_begin_allow_threads;
rest = gst_bin_remove(GST_BIN(self->obj), GST_ELEMENT(element->obj));
pyg_end_allow_threads;
if (!rest) {
PyErr_Format(PyGstExc_RemoveError, "Could not remove element '%s'", GST_OBJECT_NAME(element->obj)); PyErr_Format(PyGstExc_RemoveError, "Could not remove element '%s'", GST_OBJECT_NAME(element->obj));
return NULL; return NULL;
} }