23 lines
750 B
Ada
23 lines
750 B
Ada
with Ada.Finalization;
|
|
package task_name is
|
|
type Base_Controller is
|
|
abstract new Ada.Finalization.Limited_Controlled with null record;
|
|
|
|
type Extended_Controller is
|
|
abstract new Base_Controller with private;
|
|
|
|
type Task_Object (Controller : access Extended_Controller'Class) is
|
|
limited private;
|
|
private
|
|
type String_Access is access string;
|
|
|
|
type Extended_Controller is
|
|
abstract new Base_Controller with record
|
|
Thread : aliased Task_Object (Extended_Controller'Access);
|
|
Name : String_Access := new string'("the_name_of_the_task");
|
|
end record;
|
|
|
|
task type Task_Object (Controller : access Extended_Controller'Class) is pragma Task_Name (Controller.Name.all);
|
|
end Task_Object;
|
|
end;
|