43 lines
1.3 KiB
Diff
43 lines
1.3 KiB
Diff
From 44606b2e5219d114cfaae2c8fbc48c7fffb2a9c0 Mon Sep 17 00:00:00 2001
|
|
From: Ryan Lortie <desrt@desrt.ca>
|
|
Date: Mon, 28 Oct 2013 11:44:16 -0700
|
|
Subject: [PATCH] GCancellable: drop lock for callback during connect()
|
|
|
|
Don't hold the lock when calling the user's callback during
|
|
g_cancellable_connect() for the case that the cancellable has already
|
|
fired.
|
|
|
|
Taken from a patch by Alex Larsson.
|
|
|
|
https://bugzilla.gnome.org/show_bug.cgi?id=705395
|
|
---
|
|
gio/gcancellable.c | 5 ++++-
|
|
1 file changed, 4 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/gio/gcancellable.c b/gio/gcancellable.c
|
|
index fc56b87..2e52141 100644
|
|
--- a/gio/gcancellable.c
|
|
+++ b/gio/gcancellable.c
|
|
@@ -557,6 +557,8 @@ g_cancellable_connect (GCancellable *cancellable,
|
|
void (*_callback) (GCancellable *cancellable,
|
|
gpointer user_data);
|
|
|
|
+ g_mutex_unlock (&cancellable_mutex);
|
|
+
|
|
_callback = (void *)callback;
|
|
id = 0;
|
|
|
|
@@ -571,9 +573,10 @@ g_cancellable_connect (GCancellable *cancellable,
|
|
callback, data,
|
|
(GClosureNotify) data_destroy_func,
|
|
0);
|
|
+
|
|
+ g_mutex_unlock (&cancellable_mutex);
|
|
}
|
|
|
|
- g_mutex_unlock (&cancellable_mutex);
|
|
|
|
return id;
|
|
}
|
|
--
|
|
1.8.3.1
|