blob: 1b621cc0e9f886a12d4bb3ebe2b1c6cbbf387e2d (
plain) (
tree)
|
|
--
-- Demonstrate Task Priority
--
--
-- $Id$
with Text_IO; use Text_IO;
with Ada.Dynamic_Priorities; use Ada.Dynamic_Priorities;
with System;
with Interfaces.C;
procedure Task_Priority is
procedure Put_Priority is
function getPriority return Interfaces.C.int;
pragma Import (C, getPriority, "getPriority");
begin
Put (Interfaces.C.int'Image (getPriority));
end Put_Priority;
-- I think 151 > 150 to Ada
task Low_Task is
pragma Priority(150);
end Low_Task;
task High_Task is
pragma Priority(151);
end High_Task;
task body High_Task is
begin
Put_Line ("*** Task Priority Test ***");
Put_Line ( "High: " & System.Any_Priority'Image (Get_Priority));
Put ( "HighNative: " );
Put_Priority;
New_Line;
loop
delay 1.0;
Put_Line ("High - Waking up");
end loop;
end High_Task;
task body Low_Task is
procedure empty;
pragma Import (C, empty, "empty");
begin
Put_Line ( "Low: " & System.Any_Priority'Image (Get_Priority));
Put ( "LowNative: " );
Put_Priority;
New_Line;
delay 0.1;
loop
empty;
end loop;
end Low_Task;
begin
NULL;
end Task_Priority;
|