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 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!news.eternal-september.org!news.eternal-september.org!feeder.eternal-september.org!aioe.org!.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: Timeouts in Ada Date: Fri, 25 Jul 2014 18:34:40 +0200 Organization: cbb software GmbH Message-ID: <1oq0g68ezm6b5.1142k8vxs284r$.dlg@40tude.net> References: <50bdb713-7ce1-411b-810b-9bdee1d26b7a@googlegroups.com> <7581b098-ea30-4b34-a51e-2f0dd5a57563@googlegroups.com> <00aae9b5-42e8-40e8-a2dd-7e56ecd2bca3@googlegroups.com> <1cbcaaba-766a-4b4d-a487-ecb77735efb2@googlegroups.com> Reply-To: mailbox@dmitry-kazakov.de NNTP-Posting-Host: qHNcUCBwwd01dPSBp/L1cg.user.speranza.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@aioe.org User-Agent: 40tude_Dialog/2.0.15.1 X-Notice: Filtered by postfilter v. 0.8.2 Xref: news.eternal-september.org comp.lang.ada:21214 Date: 2014-07-25T18:34:40+02:00 List-Id: On Fri, 25 Jul 2014 02:11:29 -0700 (PDT), AdaMagica wrote: > On Thursday, July 24, 2014 5:37:39 PM UTC+2, Robert A Duff wrote: > > But this is not the same as > >> select >> call_1(params); >> or >> call_2(params); >> or >> delay 10; >> end select; BTW, there could be any combination of counters: select call_1 (params); and call_2 (params); or delay 10; end select; Calls or makes rendezvous with two entries indivisibly. A use case is prevention of deadlocks with mutexes: Task 1: select -- Acquire both or none Resource_1.Seize; and Resource_2.Seize; end select; Task 2: select Resource_2.Seize; and Resource_1.Seize; end select; is safe, while Task 1: Resource_1.Seize; Resource_2.Seize; Task 2: Resource_2.Seize; Resource_1.Seize; is unsafe. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de