ada-examples-4-10-branchada-examples-4-9-branch
Last change
on this file since bc4db0b was
84c019f,
checked in by Joel Sherrill <joel.sherrill@…>, on 02/06/08 at 18:09:50
|
2008-02-06 Joel Sherrill <joel.sherrill@…>
- ChangeLog?, Makefile, empty.c, task_priority.adb: New files.
|
-
Property mode set to
100644
|
File size:
1.2 KB
|
Line | |
---|
1 | -- |
---|
2 | -- Demonstrate Task Priority |
---|
3 | -- |
---|
4 | -- |
---|
5 | --High: 17 |
---|
6 | --HighNative: ID=0x0B010004 |
---|
7 | -- 238 |
---|
8 | --Low: 16 |
---|
9 | --LowNative: ID=0x0B010003 |
---|
10 | -- 239 |
---|
11 | |
---|
12 | |
---|
13 | with Text_IO; use Text_IO; |
---|
14 | with Ada.Dynamic_Priorities; use Ada.Dynamic_Priorities; |
---|
15 | with System; |
---|
16 | with Interfaces.C; |
---|
17 | |
---|
18 | procedure Task_Priority is |
---|
19 | |
---|
20 | procedure Put_Priority is |
---|
21 | function getPriority return Interfaces.C.int; |
---|
22 | pragma Import (C, getPriority, "getPriority"); |
---|
23 | begin |
---|
24 | Put_Line (Interfaces.C.int'Image (getPriority)); |
---|
25 | end Put_Priority; |
---|
26 | |
---|
27 | -- I think 16 > 17 to Ada |
---|
28 | task Low_Task is |
---|
29 | pragma Priority(16); |
---|
30 | end Low_Task; |
---|
31 | |
---|
32 | task High_Task is |
---|
33 | pragma Priority(17); |
---|
34 | end High_Task; |
---|
35 | |
---|
36 | task body High_Task is |
---|
37 | begin |
---|
38 | Put_Line ( "High: " & System.Any_Priority'Image (Get_Priority)); |
---|
39 | Put ( "HighNative: " ); |
---|
40 | Put_Priority; |
---|
41 | loop |
---|
42 | delay 1.0; |
---|
43 | Put_Line ("High - Waking up"); |
---|
44 | end loop; |
---|
45 | end High_Task; |
---|
46 | |
---|
47 | task body Low_Task is |
---|
48 | procedure empty; |
---|
49 | pragma Import (C, empty, "empty"); |
---|
50 | begin |
---|
51 | Put_Line ( "Low: " & System.Any_Priority'Image (Get_Priority)); |
---|
52 | Put ( "LowNative: " ); |
---|
53 | Put_Priority; |
---|
54 | delay 0.1; |
---|
55 | loop |
---|
56 | empty; |
---|
57 | end loop; |
---|
58 | end Low_Task; |
---|
59 | |
---|
60 | begin |
---|
61 | NULL; |
---|
62 | end Task_Priority; |
---|
Note: See
TracBrowser
for help on using the repository browser.