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: 103376,86adf9f3441b35ad X-Google-NewGroupId: yes X-Google-Attributes: gida07f3367d7,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news2.google.com!news2.google.com!npeer01.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!nntp.club.cc.cmu.edu!micro-heart-of-gold.mit.edu!newsswitch.lcs.mit.edu!nntp.TheWorld.com!not-for-mail From: Robert A Duff Newsgroups: comp.lang.ada Subject: Re: requeue vs requeue with abort - code example pleaseeee Date: Fri, 10 Dec 2010 12:27:34 -0500 Organization: The World Public Access UNIX, Brookline, MA Message-ID: References: <7bd3db89-ae9d-4e09-9590-676f85dcef9a@w2g2000yqb.googlegroups.com> <1hvnr1d2wp3vj$.fnxma3y5cxig.dlg@40tude.net> <4b300308-549a-41db-a0e3-961bf9e4f422@l8g2000yqh.googlegroups.com> NNTP-Posting-Host: shell01.theworld.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: pcls6.std.com 1292002054 13424 192.74.137.71 (10 Dec 2010 17:27:34 GMT) X-Complaints-To: abuse@TheWorld.com NNTP-Posting-Date: Fri, 10 Dec 2010 17:27:34 +0000 (UTC) User-Agent: Gnus/5.1008 (Gnus v5.10.8) Emacs/21.3 (irix) Cancel-Lock: sha1:nTs3Qux4Q5rGnmN8Bh7JT9rZ7mE= Xref: g2news2.google.com comp.lang.ada:16860 Date: 2010-12-10T12:27:34-05:00 List-Id: AdaMagica writes: > There is a also a subtle difference between a conditional entry call > and a timed entry call with zero delay (even though 9.7.3(3) says that > they are equivalent). That can't be right. 9.7.3(3) defines the semantics of conditional entry call. How can the RM be wrong about what the RM says? ;-) > ...If the communication time between caller and callee is significant, > the timed entry call is cancelled at once, even though the callee may > be ready to accept. No, for a timed entry call, the call is first "issued", which involves first checking whether the called task or protected object is ready. This might take a long time (in your Voyager example). It will certainly take more than 0.0 seconds, but that doesn't matter -- if the callee is ready, then the entry call proceeds. It doesn't matter that it takes a finite amount of time to determine whether the callee is ready. Only after finding the callee NOT ready do we think about cancelling the call. >...The conditional entry call will succeed because it will not be >cancelled before the request reaches the callee and the open >alternatives are examined (a conditional entry call to a task running >on Voyager will succeed, a timed one will be cancelled). Right. So a conditional call behaves the same as a timed call with "delay 0.0". It doesn't matter whether requeue is involved. Note that it doesn't matter whether the callee is ready at the time the conditional or timed call starts -- that is unknown, and unknowable. I snipped your example, because it doesn't have any conditional entry calls, nor "delay 0.0" calls, so it's not related to this equivalence. - Bob