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
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;