r17759 - in /desktop/experimental/pygobject/debian: changelog patches/64_gil_locking.patch patches/series

sjoerd at users.alioth.debian.org sjoerd at users.alioth.debian.org
Fri Nov 28 15:46:32 UTC 2008


Author: sjoerd
Date: Fri Nov 28 15:46:32 2008
New Revision: 17759

URL: http://svn.debian.org/wsvn/pkg-gnome/?sc=1&rev=17759
Log:
* debian/patches/64_gil_lock.patch, added.
  + Release the python GIL lock when getting properties and unreffing
  objects. Prevents deadlocks when using farsight2.

Added:
    desktop/experimental/pygobject/debian/patches/64_gil_locking.patch
Modified:
    desktop/experimental/pygobject/debian/changelog
    desktop/experimental/pygobject/debian/patches/series

Modified: desktop/experimental/pygobject/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/pygobject/debian/changelog?rev=17759&op=diff
==============================================================================
--- desktop/experimental/pygobject/debian/changelog (original)
+++ desktop/experimental/pygobject/debian/changelog Fri Nov 28 15:46:32 2008
@@ -1,3 +1,11 @@
+pygobject (2.15.4-2) experimental; urgency=low
+
+  * debian/patches/64_gil_lock.patch, added.
+    + Release the python GIL lock when getting properties and unreffing
+    objects. Prevents deadlocks when using farsight2.
+
+ -- Sjoerd Simons <sjoerd at debian.org>  Fri, 28 Nov 2008 16:07:42 +0100
+
 pygobject (2.15.4-1) experimental; urgency=low
 
   [ Emilio Pozuelo Monfort ]

Added: desktop/experimental/pygobject/debian/patches/64_gil_locking.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/pygobject/debian/patches/64_gil_locking.patch?rev=17759&op=file
==============================================================================
--- desktop/experimental/pygobject/debian/patches/64_gil_locking.patch (added)
+++ desktop/experimental/pygobject/debian/patches/64_gil_locking.patch Fri Nov 28 15:46:32 2008
@@ -1,0 +1,45 @@
+--- a/gobject/pygobject.c	(revision 975)
++++ b/gobject/pygobject.c	(working copy)
+@@ -291,7 +291,9 @@
+     }
+     
+     g_value_init(&value, G_PARAM_SPEC_VALUE_TYPE(pspec));
++    pyg_begin_allow_threads;
+     g_object_get_property(self->pygobject->obj, attr_name, &value);
++    pyg_end_allow_threads;
+     ret = pyg_param_gvalue_as_pyobject(&value, TRUE, pspec);
+     g_value_unset(&value);
+     
+@@ -1066,8 +1068,11 @@
+         if (self->inst_dict) {
+             g_object_remove_toggle_ref(self->obj, pyg_toggle_notify, self);
+             self->private_flags.flags &= ~PYGOBJECT_USING_TOGGLE_REF;
+-        } else
++        } else {
++            pyg_begin_allow_threads;
+             g_object_unref(self->obj);
++            pyg_end_allow_threads;
++        }
+         self->obj = NULL;
+     }
+     Py_CLEAR(self->inst_dict);
+@@ -1197,7 +1202,9 @@
+ 	return NULL;
+     }
+     g_value_init(&value, G_PARAM_SPEC_VALUE_TYPE(pspec));
++    pyg_begin_allow_threads;
+     g_object_get_property(self->obj, param_name, &value);
++    pyg_end_allow_threads;
+     ret = pyg_param_gvalue_as_pyobject(&value, TRUE, pspec);
+     g_value_unset(&value);
+     return ret;
+@@ -1247,7 +1254,9 @@
+         }
+         g_value_init(&value, G_PARAM_SPEC_VALUE_TYPE(pspec));
+ 
++        pyg_begin_allow_threads;
+         g_object_get_property(self->obj, property_name, &value);
++        pyg_end_allow_threads;
+ 
+         item = pyg_value_as_pyobject(&value, TRUE);
+         PyTuple_SetItem(tuple, i, item);

Modified: desktop/experimental/pygobject/debian/patches/series
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/pygobject/debian/patches/series?rev=17759&op=diff
==============================================================================
--- desktop/experimental/pygobject/debian/patches/series (original)
+++ desktop/experimental/pygobject/debian/patches/series Fri Nov 28 15:46:32 2008
@@ -3,4 +3,5 @@
 61_wakeupfd-fctnl-and-read.patch
 62_install-pyglib-in-libdir-with-python-version.patch
 63_macro-dir.patch
+64_gil_locking.patch
 90_autofoo.patch




More information about the pkg-gnome-commits mailing list