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=-2.9 required=5.0 tests=BAYES_00,MAILING_LIST_MULTI autolearn=unavailable autolearn_force=no version=3.4.4 X-Google-Thread: 103376,88cb7446cf44556a X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news2.google.com!news4.google.com!news.glorb.com!feed.xsnews.nl!feeder.xsnews.nl!proxad.net!cleanfeed1-a.proxad.net!nnrp12-2.free.fr!not-for-mail Return-Path: X-Mailer: Novell GroupWise Internet Agent 6.5.6 Date: Fri, 15 Sep 2006 16:24:34 -0500 From: "Anh Vo" To: , "Dr. Adrian Wrigley" Subject: Re: Reliability and deadlock in Annex E/distributed code Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Disposition: inline X-OriginalArrivalTime: 15 Sep 2006 21:18:07.0739 (UTC) FILETIME=[708754B0:01C6D90C] X-Virus-Scanned: amavisd-new at ada-france.org X-BeenThere: comp.lang.ada@ada-france.org X-Mailman-Version: 2.1.8rc1 Precedence: list List-Id: "Gateway to the comp.lang.ada Usenet newsgroup" List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.ada Message-ID: X-Leafnode-NNTP-Posting-Host: 88.191.17.134 Organization: Guest of ProXad - France NNTP-Posting-Date: 17 Sep 2006 14:14:31 MEST NNTP-Posting-Host: 88.191.14.223 X-Trace: 1158495271 nnrp12-2.free.fr 19698 88.191.14.223:57206 X-Complaints-To: abuse@proxad.net Xref: g2news2.google.com comp.lang.ada:6618 Date: 2006-09-17T14:14:31+02:00 I successfully compiled and run your original code. The important thing is the starting sequence of partitions. That is cpart , bpart and apart should be started in sequence. Cpart terminates first. Then, after 1000 seconds, cpart and bpart terminate. Therefore, delay 1000 seconds in amain.adb is unnecessary. Comment out this delay, the result of the run can complete quickly without for 17 minutes approximately. AV >>> "Dr. Adrian Wrigley" 9/13/2006 4:21 AM >>> On Tue, 12 Sep 2006 20:31:55 +0000, Dr. Adrian Wrigley wrote: [..] (talking to myself again...) If I change function Next in b.adb so that it doesn't call A (returning a constant instead), there are absolutely no problems. Only when B.Next calls A does the deadlock happen. There must be something in BPart that isn't completing properly when running B.Next and calling into A. Each time the call into B hangs, it uses up a task. It will create anonymous tasks to replace them until the whole program grinds to a halt :( I've tried using gdb on BPart to see what's going on. From what I can tell, the key code is in s-rpcser.adb, function RPC_Handler. On alternate occasions, it executes the remote subprogram or just stops. If I could see why this happens, I might be able to fix it... -- Adrian