[gnome-online-accounts] httpclient: Add a comment
- From: Debarshi Ray <debarshir src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-online-accounts] httpclient: Add a comment
- Date: Mon, 30 Oct 2017 16:25:13 +0000 (UTC)
commit b0cfdb9b89f8f4bc3a38376cb5ac82bbee1b8285
Author: Debarshi Ray <debarshir gnome org>
Date: Mon Jan 9 18:18:23 2017 +0100
httpclient: Add a comment
https://bugzilla.gnome.org/show_bug.cgi?id=764157
src/goabackend/goahttpclient.c | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)
---
diff --git a/src/goabackend/goahttpclient.c b/src/goabackend/goahttpclient.c
index c3a9f7c..b7e4d85 100644
--- a/src/goabackend/goahttpclient.c
+++ b/src/goabackend/goahttpclient.c
@@ -182,6 +182,14 @@ http_client_check_response_cb (SoupSession *session, SoupMessage *msg, gpointer
if (error != NULL)
g_simple_async_result_take_error (data->res, error);
+ /* We might be invoked from a GCancellable::cancelled
+ * handler, and freeing CheckData will disconnect the handler. Since
+ * disconnecting from inside the handler will cause a deadlock [1],
+ * we use an idle handler to break them up.
+ *
+ * [1] https://bugzilla.gnome.org/show_bug.cgi?id=705395
+ */
+
source = g_idle_source_new ();
g_source_set_priority (source, G_PRIORITY_DEFAULT_IDLE);
g_source_set_callback (source, http_client_check_complete_and_free_in_idle, data, NULL);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]