]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
ada: Use Finalizable for suspension objects
authorRonan Desplanques <desplanques@adacore.com>
Mon, 3 Nov 2025 11:44:49 +0000 (12:44 +0100)
committerMarc Poulhiès <dkm@gcc.gnu.org>
Tue, 18 Nov 2025 15:05:09 +0000 (16:05 +0100)
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.

gcc/ada/libgnarl/a-sytaco.ads

index 24b2a8076b910ca01b3ed2a36bac1414073ac06c..602e31a74f4a2b9d362b34cbefedfa2f47a1412e 100644 (file)
@@ -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);