3 type Base_Controller is
4 abstract new Ada.Finalization.Limited_Controlled with null record;
6 type Extended_Controller is
7 abstract new Base_Controller with private;
9 type Task_Object (Controller : access Extended_Controller'Class) is
12 type String_Access is access string;
14 type Extended_Controller is
15 abstract new Base_Controller with record
16 Thread : aliased Task_Object (Extended_Controller'Access);
17 Name : String_Access := new string'("the_name_of_the_task");
20 task type Task_Object (Controller : access Extended_Controller'Class) is pragma Task_Name (Controller.Name.all);