summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Winship <danw@gnome.org>2013-01-09 17:21:13 -0500
committerDan Winship <danw@gnome.org>2013-01-09 17:22:42 -0500
commit7afbc9dc94e36ede35f06a9269e2853c002f8f6f (patch)
tree535710e829d1303b569d2af5c6bd070f2c8a9953
parent67fb3730a1f5ded95e1a51dd6b3e00cb41dfbdbc (diff)
downloadlibsoup-7afbc9dc94e36ede35f06a9269e2853c002f8f6f.tar.gz
libsoup-7afbc9dc94e36ede35f06a9269e2853c002f8f6f.tar.bz2
libsoup-7afbc9dc94e36ede35f06a9269e2853c002f8f6f.zip
soup-session: fix a deadlock when aborting a SoupSessionSync
We need to signal conn_cond when removing an item from the queue, since flush_queue() expects that... (and also, since in some cases, removing a message from the queue will allow another one to start). https://bugzilla.gnome.org/show_bug.cgi?id=691399
-rw-r--r--libsoup/soup-session.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/libsoup/soup-session.c b/libsoup/soup-session.c
index 3b23846c..c4abe1d9 100644
--- a/libsoup/soup-session.c
+++ b/libsoup/soup-session.c
@@ -1422,6 +1422,7 @@ soup_session_unqueue_item (SoupSession *session,
g_mutex_lock (&priv->conn_lock);
host = get_host_for_message (session, item->msg);
host->num_messages--;
+ g_cond_broadcast (&priv->conn_cond);
g_mutex_unlock (&priv->conn_lock);
/* g_signal_handlers_disconnect_by_func doesn't work if you