From: "Dr. Adrian Wrigley" <amtw@linuxchip.demon.co.uk.uk.uk>
Subject: Re: select delay; then abort... in Annex E
Date: Tue, 03 Oct 2006 22:31:46 GMT
Date: 2006-10-03T22:31:46+00:00 [thread overview]
Message-ID: <pan.2006.10.03.22.31.07.855939@linuxchip.demon.co.uk.uk.uk> (raw)
In-Reply-To: FGyUg.1007095$084.875925@attbi_s22
On Tue, 03 Oct 2006 19:16:53 +0000, Jeffrey R. Carter wrote:
> Dr. Adrian Wrigley wrote:
>>
>> What happens is that the RCI call continues to completion. All
>> subsequent delay statements in the task take minimal time(!),
>> but the task continues to run. It can successfully call RCI
>> units, and proceeds as normal (other than the instant delay statements)
>> until it completes.
>
> Are you trying to abort a procedure that takes longer to execute than
> your delay, or a remote call that is not returning when the procedure
> has completed execution?
Mostly the former. But the latter case suggests some kind of fault.
I'm looking to protect the caller from getting held up by
a problem somewhere in the call. Perhaps the callee is stuck
swapping heavily, has delays in communication or similar.
> If the former, can you move the time out to the procedure?
>
> Remoteprocedure (Timeout_Interval => 10.0, Timed_Out => Timed_Out);
>
> if Timed_Out then
> Complain;
> end if;
This is a good suggestion. It will handle the example nicely, provided
everything is running properly. It's the problem cases I want to
catch where, for example, the RCI call doesn't start (no spare tasks).
Partly it's a matter of confidence in the integrity of the system.
Who's to say the time out in the remote procedure will work?
Maybe if it does a remote call itself, that'll fail too.
Also, it does mean changing the interfaces, moving the boundaries
of responsibility. Perhaps it could raise a Timed_Out
exception (remotely).
Since I sent the initial message, I have found that the problem is
caused by aborts failing in tasks which have made RCI calls.
Even a simple abort from another task does not work properly.
GNAT 3.15 did this OK.
The fix, of course, is to get a working Annex E implementation.
But in the mean time, I'll have to work around the limitations.
I'll use your suggestion if it becomes necessary. Currently,
I kill the whole partition instead, but this isn't good.
Thanks.
--
Adrian
prev parent reply other threads:[~2006-10-03 22:31 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-09-30 22:31 select delay; then abort... in Annex E Dr. Adrian Wrigley
2006-10-02 7:33 ` Alex R. Mosteo
2006-10-03 11:20 ` Dr. Adrian Wrigley
2006-10-03 11:33 ` Dr. Adrian Wrigley
2006-10-03 13:01 ` Alex R. Mosteo
2006-10-03 19:16 ` Jeffrey R. Carter
2006-10-03 22:31 ` Dr. Adrian Wrigley [this message]
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox