-- -- Demonstrate Task Priority -- -- --High: 17 --HighNative: ID=0x0B010004 -- 238 --Low: 16 --LowNative: ID=0x0B010003 -- 239 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_Line (Interfaces.C.int'Image (getPriority)); end Put_Priority; -- I think 16 > 17 to Ada task Low_Task is pragma Priority(16); end Low_Task; task High_Task is pragma Priority(17); end High_Task; task body High_Task is begin Put_Line ( "High: " & System.Any_Priority'Image (Get_Priority)); Put ( "HighNative: " ); Put_Priority; 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; delay 0.1; loop empty; end loop; end Low_Task; begin NULL; end Task_Priority;