[gcc r16-5375] ada: Use Finalizable for suspension objects
Marc Poulhies
dkm@gcc.gnu.org
Tue Nov 18 15:06:22 GMT 2025
https://gcc.gnu.org/g:1592d6f9e7c53331bc6df568c2f2d032a4aab571
commit r16-5375-g1592d6f9e7c53331bc6df568c2f2d032a4aab571
Author: Ronan Desplanques <desplanques@adacore.com>
Date: Mon Nov 3 12:44:49 2025 +0100
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:
---
gcc/ada/libgnarl/a-sytaco.ads | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/gcc/ada/libgnarl/a-sytaco.ads b/gcc/ada/libgnarl/a-sytaco.ads
index 24b2a8076b91..602e31a74f4a 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);
More information about the Gcc-cvs
mailing list