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.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: a07f3367d7,25642dc8f94534f6 X-Google-Attributes: gida07f3367d7,public,usenet X-Google-NewGroupId: yes X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news2.google.com!news1.google.com!goblin1!goblin.stu.neva.ru!news.tornevall.net!not-for-mail From: "Jeffrey R. Carter" Newsgroups: comp.lang.ada Subject: Re: Basic question about select Date: Wed, 28 Apr 2010 14:00:50 -0700 Organization: TornevallNET - http://news.tornevall.net Message-ID: References: <1p2m3s7y70lsa$.79fl3we9edva$.dlg@40tude.net> NNTP-Posting-Host: e235fdd06b101b569193fa4198a4fe5e Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Trace: 9d50b31fa23aac87b46c0a9a73d2a071 X-Complaints-To: abuse@tornevall.net X-Complaints-Language: Spoken language is english or swedish - NOT ITALIAN, FRENCH, GERMAN OR ANY OTHER LANGUAGE! In-Reply-To: <1p2m3s7y70lsa$.79fl3we9edva$.dlg@40tude.net> X-Validate-Post: http://news.tornevall.net/validate.php?trace=9d50b31fa23aac87b46c0a9a73d2a071 X-SpeedUI: 1738 X-Complaints-Italiano: Non abbiamo padronanza della lingua italiana - se mandate una email scrivete solo in Inglese, grazie User-Agent: Thunderbird 2.0.0.24 (X11/20100411) X-Posting-User: 0243687135df8c4b260dd4a9a93c79bd Xref: g2news2.google.com comp.lang.ada:11238 Date: 2010-04-28T14:00:50-07:00 List-Id: Dmitry A. Kazakov wrote: > > It waits 10s and then assigns Q to Status. But if within these 10s + the > time needed to assign Status, the task PID accepts Call, then the sequence > introduced by "then abort" is aborted, Call is performed, and finally, P is > assigned to Status. That's a good explanation for the OP. Technically, though, it isn't quite true: if the entry call *completes* then the abortable part (after "then abort") is aborted: "If the triggering_statement completes other than due to cancellation, the abortable_part is aborted". The abortable part only begins execution if the entry call is queued, either immediately or by requeue-with-abort. If the abortable part completes, then it attempts to cancel the entry call, even if it has been "selected" (is no longer queued but has not completed). For a timed entry call, no attempt is made to cancel the entry call if the entry has been "selected". This difference in semantics may be why this code uses asynchronous transfer of control rather than a timed entry call. But I doubt it. -- Jeff Carter "From this day on, the official language of San Marcos will be Swedish." Bananas 28