mirror of
				https://gitlab.gnome.org/GNOME/glib.git
				synced 2025-10-31 00:12:19 +01:00 
			
		
		
		
	gresource: Use atomic pointer exchange operations to nullify and check
This commit is contained in:
		| @@ -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); | ||||
|     } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user