comp.lang.ada
 help / color / mirror / Atom feed
From: "Dr. Adrian Wrigley" <amtw@linuxchip.demon.co.uk.uk.uk>
Subject: Re: Reliability and deadlock in Annex E/distributed code (progress at last!)
Date: Sat, 23 Sep 2006 16:03:25 GMT
Date: 2006-09-23T16:03:25+00:00	[thread overview]
Message-ID: <pan.2006.09.23.16.02.47.136832@linuxchip.demon.co.uk.uk.uk> (raw)
In-Reply-To: 87psdnfqel.fsf@ludovic-brenta.org

On Sat, 23 Sep 2006 01:11:14 +0200, Ludovic Brenta wrote:

> Dr. Adrian Wrigley writes:
> [glade 2006 examples]
>> Has anyone here managed to run these examples?
> 
> I haven't gotten around to packaging glade 2006 for Debian yet, but
> it's on my list.  Your input is very valuable to me.
> 
>> I have emailed gnat-gpl@adacore.com
> 
> Please keep me posted.

The Glade test case MultiPro does not build in GPL 2006.
This is a known problem.

The deadlock is in Examples/Eratho/dynamic and Examples/Eratho/spiral
(cycle and absolute work fine <I got this the wrong way round in my last
message>). This seems to be the same problem as the deadlock in the simple
test case elsewhere in this thread. It doesn't seem to be a known problem.

There is a *separate* deadlock issue when running multiple
partitions doing RACW calls into different partitions, not the
boot partition.  This problem is also shown by Glade 3.15p and
all other versions I have tried.  I have a test case for this
if anyone is interested (a bit longer than the other).

Finally, however, there is good news (for me that is)!

I have found that by removing all the cases of RCI calls
calling other RCI units, I can avoid the deadlock that I have been
struggling with in recent Glades.

That just leaves the intermittent deadlock when doing RACW
calls from two different partitions into a third.
This problem is solved by putting the RACW unit into the boot partition.

By making the RACW unit (a server) into a generic package, I
can instantiate it from library level for each server instance
that I need (I just need a few).  The instantiations can then
all be configured into the root partition.

So I have managed to make the code run absolutely reliably.
In particular, running multiple clients concurrently,
and killing clients prematurely has caused *no* anomolous
behaviour.  This is great improvement over the same code
running on 3.15p, which would hang sporadically.

The only functionality lost is the ability to dynamically
instantiate servers.  Whenever the servers are in spearate
partitions, the failures occur.

The next step is to get the GtkAda components working,
and then to build the 64-bit and 32-bit partitions built
and working together (this works nicely, AFACT).

Thanks to everyone who has made suggestions here and by email!
--
Adrian





  reply	other threads:[~2006-09-23 16:03 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-09-10 20:58 Reliability and deadlock in Annex E/distributed code Dr. Adrian Wrigley
2006-09-11 18:52 ` Jerome Hugues
2006-09-12 20:40   ` Dr. Adrian Wrigley
2006-09-13  7:16     ` Dmitry A. Kazakov
2006-09-12 20:31 ` Dr. Adrian Wrigley
2006-09-12 23:24   ` tmoran
2006-09-13 11:00     ` Dr. Adrian Wrigley
2006-09-13 11:21   ` Dr. Adrian Wrigley
2006-09-21 21:18   ` Dr. Adrian Wrigley
2006-09-22 13:52   ` Dr. Adrian Wrigley
2006-09-22 23:11     ` Ludovic Brenta
2006-09-23 16:03       ` Dr. Adrian Wrigley [this message]
2006-09-23 19:17         ` Reliability and deadlock in Annex E/distributed code (progress at last!) Björn Persson
2006-09-23 20:53           ` Dr. Adrian Wrigley
2006-09-23 22:21             ` Björn Persson
2006-09-23 23:31               ` tmoran
2006-09-24  0:19                 ` Dr. Adrian Wrigley
2006-09-25 11:41             ` Alex R. Mosteo
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox