On Wed, 2016-03-09 at 16:03 +0100, Fabiano Fidêncio wrote: > On Tue, Mar 8, 2016 at 11:25 PM, Jonathon Jongsma <jjongsma@xxxxxxxxxx> wrote: > > cancelled_cb() (which is triggered when the GCancellable's "cancelled" > > signal is emitted) called spice_usb_acl_helper_close_acl(), which calls > > spice_usb_acl_helper_cleanup(), which in turn calls > > g_cancellable_disconnect(). Calling g_cancellable_disconnect() from > > within a "cancelled" handler results in a dealock, as mentioned in the > > documentation. Instead of closing the acl here, simply return the > > CANCELLED GError here. the cleanup() call will happen when the > > SpiceUsbAclHelper object is destroyed. > > --- > > src/usb-acl-helper.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/src/usb-acl-helper.c b/src/usb-acl-helper.c > > index 6a49627..3145b68 100644 > > --- a/src/usb-acl-helper.c > > +++ b/src/usb-acl-helper.c > > @@ -162,7 +162,7 @@ static void cancelled_cb(GCancellable *cancellable, > > gpointer user_data) > > { > > SpiceUsbAclHelper *self = SPICE_USB_ACL_HELPER(user_data); > > > > - spice_usb_acl_helper_close_acl(self); > > + async_result_set_cancelled(self->priv->result); > > } > > > > static void helper_child_watch_cb(GPid pid, gint status, gpointer > > user_data) > > -- > > 2.4.3 > > > > _______________________________________________ > > Spice-devel mailing list > > Spice-devel@xxxxxxxxxxxxxxxxxxxxx > > https://lists.freedesktop.org/mailman/listinfo/spice-devel > > Acked-by: Fabiano Fidêncio <fidencio@xxxxxxxxxx> So it turns out that after a bit more testing, this change is not sufficient. Will be submitting something else after a bit more analysis. _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel