[glib] GMenuModel exporter: remove workaround
- From: Ryan Lortie <ryanl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib] GMenuModel exporter: remove workaround
- Date: Thu, 8 Dec 2011 23:15:08 +0000 (UTC)
commit 21aca44ee1c16bec9338fe3df1b285a9f0ffaf4a
Author: Ryan Lortie <desrt desrt ca>
Date: Wed Dec 7 10:35:29 2011 -0500
GMenuModel exporter: remove workaround
With Bug 665733 fixed, we can remove the workaround (which was causing
thread safety problems).
gio/gmenuexporter.c | 28 ++++------------------------
1 files changed, 4 insertions(+), 24 deletions(-)
---
diff --git a/gio/gmenuexporter.c b/gio/gmenuexporter.c
index 791ce6e..f0647bd 100644
--- a/gio/gmenuexporter.c
+++ b/gio/gmenuexporter.c
@@ -770,12 +770,11 @@ g_menu_exporter_create_group (GMenuExporter *exporter)
return group;
}
-
-static GMenuExporter *g_menu_exporter_to_free;
-
static void
-g_menu_exporter_actually_free (GMenuExporter *exporter)
+g_menu_exporter_free (gpointer user_data)
{
+ GMenuExporter *exporter = user_data;
+
g_menu_exporter_menu_free (exporter->root);
g_hash_table_unref (exporter->remotes);
g_hash_table_unref (exporter->groups);
@@ -786,20 +785,6 @@ g_menu_exporter_actually_free (GMenuExporter *exporter)
}
static void
-g_menu_exporter_free (gpointer user_data)
-{
- /* XXX: hack
- *
- * GDBusConnection calls the destroy notify while holding its own lock
- * which means that we get a deadlock on re-entering it.
- *
- * Work around this for now...
- */
- g_assert (g_menu_exporter_to_free == NULL);
- g_menu_exporter_to_free = user_data;
-}
-
-static void
g_menu_exporter_method_call (GDBusConnection *connection,
const gchar *sender,
const gchar *object_path,
@@ -903,12 +888,7 @@ void
g_dbus_connection_unexport_menu_model (GDBusConnection *connection,
guint export_id)
{
- if (!g_dbus_connection_unregister_object (connection, export_id))
- return;
-
- g_assert (g_menu_exporter_to_free != NULL);
- g_menu_exporter_actually_free (g_menu_exporter_to_free);
- g_menu_exporter_to_free = NULL;
+ g_dbus_connection_unregister_object (connection, export_id);
}
/* {{{1 Epilogue */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]