[Ada] GNAT.Threads: Add a Get_Thread overload taking a Task_Id
authorArnaud Charlet <charlet@adacore.com>
Thu, 11 Jul 2019 08:01:25 +0000 (08:01 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Thu, 11 Jul 2019 08:01:25 +0000 (08:01 +0000)
2019-07-11  Arnaud Charlet  <charlet@adacore.com>

gcc/ada/

* libgnarl/g-thread.ads, libgnarl/g-thread.adb (Get_Thread):
Update comments. Add new version taking a Task_Id.

From-SVN: r273380

gcc/ada/ChangeLog
gcc/ada/libgnarl/g-thread.adb
gcc/ada/libgnarl/g-thread.ads

index fa580d293f0f0bf3f1f274d41f680f7dca8d4324..703280c2d01875fee3e7ea4fb9decdcebcb7b4fe 100644 (file)
@@ -1,3 +1,8 @@
+2019-07-11  Arnaud Charlet  <charlet@adacore.com>
+
+       * libgnarl/g-thread.ads, libgnarl/g-thread.adb (Get_Thread):
+       Update comments. Add new version taking a Task_Id.
+
 2019-07-11  Hristian Kirtchev  <kirtchev@adacore.com>
 
        * bindo.adb: Update the section of switches and debugging
index f4ce92e1cd8511300db12c6db8f4f1adf2fd37fa..ae619371cbc0f0a22173dea434656207c2c1c105 100644 (file)
@@ -168,9 +168,14 @@ package body GNAT.Threads is
    ----------------
 
    procedure Get_Thread (Id : Address; Thread : Address) is
-      Thr : constant Thread_Id_Ptr := To_Thread (Thread);
    begin
-      Thr.all := Task_Primitives.Operations.Get_Thread_Id (To_Id (Id));
+      To_Thread (Thread).all :=
+        Task_Primitives.Operations.Get_Thread_Id (To_Id (Id));
+   end Get_Thread;
+
+   procedure Get_Thread (Id : Task_Id; Thread : Address) is
+   begin
+      Get_Thread (To_Addr (Id), Thread);
    end Get_Thread;
 
    ----------------------
index ad4a0757153ccb290ab2eb30fb5689a7e41e2704..8792e9add599d8f1630b7ea607d799576ac9b75d 100644 (file)
@@ -129,9 +129,11 @@ package GNAT.Threads is
 
    procedure Get_Thread (Id : System.Address; Thread : System.Address);
    pragma Export (C, Get_Thread, "__gnat_get_thread");
+   procedure Get_Thread
+     (Id : Ada.Task_Identification.Task_Id; Thread : System.Address);
    --  This procedure is used to retrieve the thread id of a given task.
    --  The value Id is the value that was passed to the thread code procedure
-   --  at activation time.
+   --  at activation time or a Task_Id.
    --  Thread is a pointer to a thread id that will be updated by this
    --  procedure.
    --