raven-rhel6/rx-glib2/GCancellable_drop_lock_for_callback.patch
2024-02-21 20:14:44 +06:00

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