From: Ronan Desplanques Date: Mon, 3 Nov 2025 11:44:49 +0000 (+0100) Subject: ada: Use Finalizable for suspension objects X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1592d6f9e7c53331bc6df568c2f2d032a4aab571;p=thirdparty%2Fgcc.git ada: Use Finalizable for suspension objects The only reason Suspension_Object was a tagged type before this patch was to have finalization. This patch makes it use the Finalizable aspect, which is more lightweight. gcc/ada/ChangeLog: * libgnarl/a-sytaco.ads (Suspension_Object): Use Finalizable aspect. --- diff --git a/gcc/ada/libgnarl/a-sytaco.ads b/gcc/ada/libgnarl/a-sytaco.ads index 24b2a8076b9..602e31a74f4 100644 --- a/gcc/ada/libgnarl/a-sytaco.ads +++ b/gcc/ada/libgnarl/a-sytaco.ads @@ -35,7 +35,6 @@ with System.Task_Primitives; -with Ada.Finalization; with Ada.Task_Identification; package Ada.Synchronous_Task_Control with @@ -75,14 +74,17 @@ private procedure Finalize (S : in out Suspension_Object); -- Finalization for Suspension_Object - type Suspension_Object is - new Ada.Finalization.Limited_Controlled with - record + type Suspension_Object is limited record SO : System.Task_Primitives.Suspension_Object; -- Use low-level suspension objects so that the synchronization -- functionality provided by this object can be achieved using -- efficient operating system primitives. - end record; + end record + with + Finalizable => + (Initialize => Initialize, + Finalize => Finalize, + Relaxed_Finalization => False); pragma Inline (Set_True); pragma Inline (Set_False);