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,d1106806fae00ae8 X-Google-Attributes: gid103376,public From: bobduff@world.std.com (Robert A Duff) Subject: Re: Ada tasking issues Date: 1996/06/06 Message-ID: #1/1 X-Deja-AN: 158854918 references: <4p7418$hi2@news.eecs.uic.edu> organization: The World Public Access UNIX, Brookline, MA keywords: ATC newsgroups: comp.lang.ada Date: 1996-06-06T00:00:00+00:00 List-Id: In article <4p7418$hi2@news.eecs.uic.edu>, Ravi Gedela wrote: >But now if the call has been accepted and is being processed >and the abortable part is completed an attempt to cancel the >call is made. The Ada95 reference manual does not clearly >explain what happens in such a situation. Could you please let > me know how exactly the call that is being processed can be >retracted. Normally, if the entry call has been selected (so the accept_statement or entry_body is now running), that's the end of it -- the entry call wins the race, and the abortable part loses. The accept_stm or entry_body runs to completion. The one exception is if the entry is requeued-with-abort, and the entry on which it is requeued is not ready to go -- then the call is cancelled, and the abortable_part wins the race. You can't cancel an entry call in the middle, while it's doing something. The cancellation will only take place if and when the call is queued. If it's queued in the normal way, or by a requeue-with-abort, it will get cancelled. If it's queued by a requeue-without-abort it will not get cancelled. An ATTEMPT to cancel will be held until the entry is queued (abortably), in which case the attempt succeeds, or until the entry call is finished, in which case the attempt fails. Usually, if the trigger of an ATC is an entry call, the entry body will be short (often null). The purpose of the trigger is just to notify the caller that some event has taken place, not to do a whole lot of processing. Usually, I mean. - Bob