Pragma Task_Name (GNAT Reference Manual)

### 2.183 Pragma Task_Name ¶

Syntax

    pragma Task_Name (string_EXPRESSION);

This pragma appears within a task definition (like pragma `Priority`) and applies to the task in which it appears. The argument must be of type String, and provides a name to be used for the task instance when the task is created. Note that this expression is not required to be static, and in particular, it can contain references to task discriminants. This facility can be used to provide different names for different tasks as they are created, as illustrated in the example below.

The task name is recorded internally in the run-time structures and is accessible to tools like the debugger. In addition the routine `Ada.Task_Identification.Image` will return this string, with a unique task address appended.

    --  Example of the use of pragma Task_Name

    with Ada.Task_Identification;
    use Ada.Task_Identification;
    with Text_IO; use Text_IO;
    procedure t3 is

       type Astring is access String;

       task type Task_Typ (Name : access String) is
          pragma Task_Name (Name.all);
       end Task_Typ;

       task body Task_Typ is
          Nam : constant String := Image (Current_Task);
       begin
          Put_Line ("-->" & Nam (1 .. 14) & "<--");
       end Task_Typ;

       type Ptr_Task is access Task_Typ;
       Task_Var : Ptr_Task;

    begin
       Task_Var :=
         new Task_Typ (new String'("This is task 1"));
       Task_Var :=
         new Task_Typ (new String'("This is task 2"));
    end;