-- -- Demonstrate Task Priority -- -- -- Expected Output: -- High: 151 -- HighNative: ID=0x0B010004 104 -- Low: 150 -- LowNative: ID=0x0B010003 105 -- High - Waking up -- High - Waking up -- .... -- -- $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 ( "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;