From bfd77693cedc37713b6f1799a694fd44af9ccfe2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Tue, 21 Jun 2022 05:01:17 +0200 Subject: [PATCH] gresource: Use atomic pointer exchange operations to nullify and check --- gio/gresource.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/gio/gresource.c b/gio/gresource.c index 44d517d12..4ccd33364 100644 --- a/gio/gresource.c +++ b/gio/gresource.c @@ -1443,14 +1443,13 @@ g_static_resource_fini (GStaticResource *static_resource) register_lazy_static_resources_unlocked (); - resource = g_atomic_pointer_get (&static_resource->resource); + resource = g_atomic_pointer_exchange (&static_resource->resource, NULL); if (resource) { /* There should be at least two references to the resource now: one for * static_resource->resource, and one in the registered_resources list. */ g_assert (g_atomic_int_get (&resource->ref_count) >= 2); - g_atomic_pointer_set (&static_resource->resource, NULL); g_resources_unregister_unlocked (resource); g_resource_unref (resource); }