Pages
27-28: The text on Page 27 says that the Pressure_Controller has a
period of 30ms and the Temp_Controller
has a period of 70ms but the
code on Page 28 has periods the other way around. The text is correct.
Page 63: At the bottom of the page, the code should be
task type Sieve(B: access Bounded_Buffer);
task
Sieve_Ptr is access
Sieve;
Page 227: In the Print procedure, X'Img should be X'Image
Page
237: In package Manager there is a "with" and "use" clause for
Asynchronous_Exception. Strictly, this doesn't need to be on the
package specification but can be on the body only.
Page 280: The barrier on the "set" entry should just be "when Allocated". Data can be ovewritten when set.
Page
283: In the body of the worker task, it assumes that the task has found
it position in the pool of workers (i.e. "Found" is set to true). After
the "for loop" before it enters in to the main loop, there should be a
test on "Found" and an exception raised if it is false.
Page
341: line 14 Replace "- task T has an earlier deadline than task
S."
with "- task
T has an earlier deadline than task S and all other
tasks on ready queues with priorities strictly less than R."
Page 343: line -10 (ie 10 from bottom)
Replace "at priority 2, or 4" with "at priority 2, or 3"
Page
383: First line "(10)" -> "(20)"
Page
238: Although the program on this Page is syntactically correct as Ada
does not distinguish case, "IDs" should be "Ids" to be consistent with
the declaratiion (in two places)