From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,5f0b2f174ad085de X-Google-Attributes: gid103376,public From: rracine@draper.com (Roger Racine) Subject: Re: tasking in Ada and Annex D question Date: 1999/02/02 Message-ID: #1/1 X-Deja-AN: 439738385 Sender: nntp@news.draper.com (NNTP Master) References: <793jl9$hf@drn.newsguy.com> <7963h1$a6h$1@nnrp1.dejanews.com> Organization: Draper Laboratory Newsgroups: comp.lang.ada Date: 1999-02-02T00:00:00+00:00 List-Id: In article <7963h1$a6h$1@nnrp1.dejanews.com> robert_dewar@my-dejanews.com writes: >In article <793jl9$hf@drn.newsguy.com>, > nabbasi@earthlink.net wrote: >> 1. How could FSU be an Annex D compliant, if one thread >> will block the other like this? (even though one will >> expect that doing an IO message will cause a task to >> yield the CPU). >Annex D requires run till blocked semantics, and forbids >any kind of time slicing. >You say that you "expect" that doing an IO message will >cause a task to yield the CPU. >You can expect anything you like, but you read no such >requirement in the RM, because there is no such >requirement! In the Ada 95 Rationale, the last paragraph of section D.2.1 states: " Another anticipated application requirement is for time slicing. Implementation-defined time-slicing schemes may conform to this specification by modifying the active or base priority of a task, in a fashion similar to that outlined for EDF scheduling." I re-read the Annex and can find nothing to support your contention that it requires run till blocked semantics, with your definition of "blocked". It seems that "task dispatching points" are completely implementation defined (D.2.2.18). I am in agreement with those who want tasks to block on I/O calls. An I/O call must be considered a dispatching point, IMHO. Roger Racine