From 2140bbf7f52429a34993ed98098b2afb5443c676 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Thu, 5 Aug 2021 08:38:07 +0200 Subject: [PATCH] glib-aux: fix thread-safe initialization in _nm_g_source_sentinel_get_init() Fixes: ce7c28c514c8 ('glib-aux: add nm_g_source_sentinel_get() util') --- src/libnm-glib-aux/nm-shared-utils.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libnm-glib-aux/nm-shared-utils.c b/src/libnm-glib-aux/nm-shared-utils.c index 3fa00570b4..f2483da1ad 100644 --- a/src/libnm-glib-aux/nm-shared-utils.c +++ b/src/libnm-glib-aux/nm-shared-utils.c @@ -5000,14 +5000,14 @@ _nm_g_source_sentinel_get_init(GSource **p_source) }; GSource *source; -again: source = g_source_new((GSourceFuncs *) &source_funcs, sizeof(GSource)); g_source_set_priority(source, G_PRIORITY_DEFAULT_IDLE); g_source_set_name(source, "nm_g_source_sentinel"); if (!g_atomic_pointer_compare_and_exchange(p_source, NULL, source)) { g_source_unref(source); - goto again; + source = g_atomic_pointer_get(p_source); + nm_assert(source); } return source;