From: Jano <notelacreas@porfavor.no>
Subject: Re: Deadlock resolution
Date: Tue, 27 Jul 2004 18:52:11 +0200
Date: 2004-07-27T18:52:11+02:00 [thread overview]
Message-ID: <2mnfg2Fpcd2uU1@uni-berlin.de> (raw)
In-Reply-To: <opsbsytrf6p4pfvb@bram-2>
Nick Roberts wrote:
> On Mon, 26 Jul 2004 09:48:43 +0200, Jano <notelacreas@porfavor.no> wrote:
>
>> Nick Roberts wrote:
>>
>>> I would appreciate brief descriptions of how deadlock
>>> detection and/or resolution is performed in real Ada
>>> programs (where it is performed in Ada).
>>
>>
>> In my case, I always try to play the safe way, and I tend to use the
>> basic techniques I was taught when learning RT programming. Tasks
>> share data via monitors, and I don't use synchronous rendez-vous
>> except where this is a true need...
>>
>> In short, I prefer to not let deadlock to be a possibility.
>
>
> Okay, but in those cases where you do need to use rendezvouses (where
> deadlock might be a possibility)?
In short, I've never used a mitigation technique other than, when
confronted with a deadlock, detecting the path to it and removing the cause.
In practice, I only remember to have suffered rendez-vous deadlock once,
and it was confined to a single package still in early implementation
stage, so it was easy to spot and remove.
I've been less lucky with circular deadlocks between two protected
objects, but it was a temerity on my part because potentially blocking
calls from protected objects shouldn't be performed. In fact it was an
oversight on my part, solved once I saw what I was doing (!).
If I were extra paranoid about certain tasks and were to detect
deadlocks, as a first though I suppose I would use the ATC construct,
something like that:
select
delay Timeout_Period;
Report ("TIMEOUT IN RENDEZVOUS BLAHBLAH");
then abort
Other_Task.Rendez_Vous;
-- may be you can here
abort Other_Task;
-- or something else
end;
Are queued entry calls abortable? I seem to remember something about that.
I find the client (tasks)/server (monitors) architecture safe and
convenient, if you can stick to it...
next prev parent reply other threads:[~2004-07-27 16:52 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-07-26 3:25 Deadlock resolution Nick Roberts
2004-07-26 7:46 ` Mark Lorenzen
2004-07-27 15:31 ` Nick Roberts
2004-07-28 9:34 ` Mark Lorenzen
2004-07-28 13:53 ` Nick Roberts
2004-07-28 14:21 ` Dmitry A. Kazakov
2004-08-02 11:00 ` Ole-Hjalmar Kristensen
2004-07-26 7:48 ` Jano
2004-07-27 15:33 ` Nick Roberts
2004-07-27 16:52 ` Jano [this message]
2004-07-28 14:14 ` Nick Roberts
2004-07-29 1:04 ` Randy Brukardt
2004-07-26 14:05 ` Marc A. Criley
2004-07-27 15:50 ` Nick Roberts
2004-07-27 17:31 ` Marc A. Criley
2004-07-27 21:29 ` Robert I. Eachus
2004-07-28 14:29 ` Nick Roberts
2004-07-27 17:53 ` Martin Dowie
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox