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,6da0617d8c08cbfd X-Google-Attributes: gid103376,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news1.google.com!news2.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newsfeed00.sul.t-online.de!t-online.de!newsfeed.freenet.de!217.173.139.114.MISMATCH!bingo.onlinefix!titan-news!npeer.de.kpn-eurorings.net!npeer-ng1.kpn.DE!newsfeed.arcor.de!newsspool4.arcor-online.net!news.arcor.de.POSTED!not-for-mail From: "Dmitry A. Kazakov" Subject: Re: ANN: Simple components for Ada v3.0 Newsgroups: comp.lang.ada User-Agent: 40tude_Dialog/2.0.15.1 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Reply-To: mailbox@dmitry-kazakov.de Organization: cbb software GmbH References: Date: Mon, 12 May 2008 10:16:20 +0200 Message-ID: NNTP-Posting-Date: 12 May 2008 10:16:23 CEST NNTP-Posting-Host: f4e048b1.newsspool1.arcor-online.net X-Trace: DXC=@Re]R1?ZCnfj5k5aEF7ISmic==]BZ:afn4Fo<]lROoRa<`=YMgDjhgbbjgW5j\LYKg[6LHn;2LCVn[ On Sun, 11 May 2008 21:09:26 +0100, John McCabe wrote: > "Dmitry A. Kazakov" wrote: > >>This version provides implementations of various locking primitives: >> >> - Plain events which can be signaled, reset and awaited for; >> - Arrays of events which can be signaled, reset and awaited in any >>combination of in race condition free way; >> - Arrays of reentrant mutexes, deadlock-free with an enforced order of >>locking; >> - Race condition free event distributing pulsed value to multiple tasks; >> - Reentrant mutexes; >> - Race condition free pulse events. > > Are any of these (and your earlier releases on shared objects etc) > based on the discussions in the Burns & Wellings book? As far as I can tell, no. For example, they solve the dining philosophers using a butler task. The solution based on an array of mutexes uses no extra tasks, instead, seizing forks is atomic. (If not, due to a programming error, an exception is propagated when one of the philosophers starts eating. That is locking ordering enforcing.) -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de