From: Ronan Desplanques <[email protected]>
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.
Tested on x86_64-pc-linux-gnu, committed on master.
---
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 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);
--
2.51.0