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=-0.3 required=5.0 tests=BAYES_00, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Thread: 103376,bdf72b2364b0da13 X-Google-NewGroupId: yes X-Google-Attributes: gida07f3367d7,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Received: by 10.204.145.80 with SMTP id c16mr1744148bkv.2.1323806284583; Tue, 13 Dec 2011 11:58:04 -0800 (PST) Path: jh9ni8032bkb.0!nntp.google.com!news2.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!npeer02.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!nntp.club.cc.cmu.edu!feeder.erje.net!de-l.enfer-du-nord.net!feeder2.enfer-du-nord.net!gegeweb.org!aioe.org!.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: Interrupts handling in ADA Date: Tue, 13 Dec 2011 20:58:01 +0100 Organization: cbb software GmbH Message-ID: <1ci901usqxzm2.10itp1xi2xcp4.dlg@40tude.net> References: <30143086.6.1323549838421.JavaMail.geo-discussion-forums@vbbfq24> <6df577eb-9c6a-4f82-95e4-817f6ad1ba6e@r6g2000yqr.googlegroups.com> <515d5501-c89b-4a9d-82b6-ec3539a0c2cf@r6g2000yqr.googlegroups.com> <1xxdv2x1g239r.1wuequmfxrwcd$.dlg@40tude.net> <347f8912-af21-47d0-b6b6-0eae5b8c8a39@m7g2000vbc.googlegroups.com> Reply-To: mailbox@dmitry-kazakov.de NNTP-Posting-Host: QiAlLrcAYONeImYCedImjw.user.speranza.aioe.org Mime-Version: 1.0 X-Complaints-To: abuse@aioe.org User-Agent: 40tude_Dialog/2.0.15.1 X-Notice: Filtered by postfilter v. 0.8.2 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Date: 2011-12-13T20:58:01+01:00 List-Id: On Tue, 13 Dec 2011 11:01:00 -0800 (PST), Ada BRL wrote: > So, when buffer is NOT empty I will execute Get AND Put if both have > queued tasks (I cannot know a-priori the order of execution) or Get OR > Put if only one of the two has queued tasks. You always execute Get or Put. Select accepts only one alternative. If more than one alternatives are open and have tasks awaiting, select chooses one of them, just one. Normally select is placed in an enclosing loop: loop select accept This; or accept That; or terminate; end select; end loop; Once an alternative is selected and serviced the loop reiterates the select statement and the next alternative is selected. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de