diff options
author | André <abs@emancipe.se> | 2023-08-13 01:21:49 -0300 |
---|---|---|
committer | Philip Withnall <philip@tecnocode.co.uk> | 2023-08-14 09:15:29 +0100 |
commit | 572f8ab534a2a28737303dc4ea26f927e4a72f99 (patch) | |
tree | ff921144226e4aca9d79458d460843c0d954a77e | |
parent | f522c3f94d67493c58e9b0e27a7862c2e7ec105b (diff) | |
download | glib-572f8ab534a2a28737303dc4ea26f927e4a72f99.tar.gz |
gmenuexporter: synchronization in org_gtk_Menus_get_interface.
Protects the mutation inside org_gtk_Menus_get_interface with
g_once_init_{enter,leave}.
Fixes #3051.
-rw-r--r-- | gio/gmenuexporter.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gio/gmenuexporter.c b/gio/gmenuexporter.c index 1860b34e8..67aac19da 100644 --- a/gio/gmenuexporter.c +++ b/gio/gmenuexporter.c @@ -53,8 +53,9 @@ static GDBusInterfaceInfo * org_gtk_Menus_get_interface (void) { static GDBusInterfaceInfo *interface_info; + static gsize interface_info_initialized = 0; - if (interface_info == NULL) + if (g_once_init_enter (&interface_info_initialized)) { GError *error = NULL; GDBusNodeInfo *info; @@ -79,6 +80,8 @@ org_gtk_Menus_get_interface (void) g_assert (interface_info != NULL); g_dbus_interface_info_ref (interface_info); g_dbus_node_info_unref (info); + + g_once_init_leave (&interface_info_initialized, 1); } return interface_info; |