From: "Robert I. Eachus" <rieachus@attbi.com>
Subject: Re: terminate applications
Date: Wed, 23 Jul 2003 04:02:50 GMT
Date: 2003-07-23T04:02:50+00:00 [thread overview]
Message-ID: <3F1E08E9.2070708@attbi.com> (raw)
In-Reply-To: 3F1DC75A.5050300@noplace.com
Marin David Condic wrote:
> If Ada wants to be competitive against C, C++, Java or whatever else is
> out there, it has to be focused on customer needs. It can't be dependent
> on sending the customer to the competitor for features it can't or won't
> support, or the customer just starts to wonder why he is bothering with
> Ada when he has to have the other product anyway in order to get the job
> done. Ada needs to provide "One-Stop Shopping" so a developer doesn't
> need to look elsewhere for an answer.
As I have said, I think that you may have a need that should be
addressed. But remember what you are asking for here. To get to the
point where you need this feature in Ada, you have to use not normal
(Ada 83) tasking but protected objects or asynchronous transfer of
control. Furthermore you have to place a blocking action--or more
normally an endless loop--inside an abort deferred region.
As I said, I certainly agree that, especially for debugging situations,
such a feature would be nice to have. But the more I think about it,
the more I think that the right solution may be to add a special
procedure that breaks the abort deferral. Let's see,
with Ada.Task_Identification; use Ada.Task_Identification;
procedure Exit_Abort_Deferred_Region is
begin
if Is_Terminated(Current_Task) then raise Program_Error; end if;
end Exit_Abort_Deferred_Region;
Not very special after all, but you do need Ada.Task_Identification from
Annex C. And if you do insist on putting loops inside protected object,
probably a useful tool to have around. (For example, if you do a search
through a linked list. Or use an AVL or other type of tree and do
lookups.) Putting that in busy waits inside protected objects and in
other loops where you might have a problem solves part of the problem.
The other problem, of aborting a task that is waiting IN the OS has to
be an implementation defined thing. But it shouldn't be too hard to
talk your vendor in to checking whether a task that is being aborted is
waiting in an OS call and doing whatever OS specific thing is required
to get out there. Especially where Ada tasks correspond to OS threads,
that shouldn't be too hard. You don't care why that (abort protected)
thread is not in a ready state in the OS, you want to kill any such
threads. (Since making a blocking call from an abort protected region
is a bounded error, I don't think any langauge changes are required for
this.)
--
Robert I. Eachus
�In an ally, considerations of house, clan, planet, race are
insignificant beside two prime questions, which are: 1. Can he shoot? 2.
Will he aim at your enemy?� -- from the Laiden novels by Sharon Lee and
Steve Miller.
next prev parent reply other threads:[~2003-07-23 4:02 UTC|newest]
Thread overview: 75+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-07-18 9:36 terminate applications christoph.grein
2003-07-18 10:54 ` Jeffrey Creem
2003-07-18 11:51 ` Marin David Condic
2003-07-18 13:26 ` Nick Roberts
2003-07-18 15:18 ` Jeffrey Creem
2003-07-19 15:44 ` Marin David Condic
2003-07-20 2:03 ` Robert I. Eachus
2003-07-20 11:04 ` Marin David Condic
2003-07-20 17:53 ` Robert I. Eachus
2003-07-21 12:02 ` Marin David Condic
2003-07-21 20:31 ` Robert I. Eachus
2003-07-22 12:11 ` Marin David Condic
2003-07-22 12:26 ` Arnaud Charlet
2003-07-22 12:36 ` Marin David Condic
2003-07-22 13:23 ` Arnaud Charlet
2003-07-22 23:23 ` Marin David Condic
2003-07-22 23:46 ` Samuel Tardieu
2003-07-23 12:22 ` Marin David Condic
2003-07-23 22:17 ` Randy Brukardt
2003-07-24 1:47 ` Hyman Rosen
2003-07-24 3:36 ` tmoran
2003-07-24 3:44 ` Hyman Rosen
2003-07-24 8:02 ` Samuel Tardieu
2003-07-24 19:54 ` Randy Brukardt
2003-07-24 7:45 ` Dmitry A. Kazakov
2003-07-24 14:54 ` Warren W. Gay VE3WWG
2003-07-24 15:46 ` Dmitry A. Kazakov
2003-07-26 2:58 ` Warren W. Gay VE3WWG
2003-07-28 8:17 ` Dmitry A. Kazakov
2003-07-28 21:08 ` Warren W. Gay VE3WWG
2003-07-29 10:42 ` Marin David Condic
2003-07-29 13:47 ` Hyman Rosen
2003-07-29 17:04 ` Warren W. Gay VE3WWG
2003-07-24 12:01 ` Marin David Condic
2003-07-24 20:12 ` Randy Brukardt
2003-07-24 23:11 ` Robert I. Eachus
2003-07-26 12:52 ` Marin David Condic
2003-07-26 3:28 ` Warren W. Gay VE3WWG
2003-07-24 11:51 ` Marin David Condic
2003-07-24 20:32 ` Randy Brukardt
2003-07-26 3:16 ` Warren W. Gay VE3WWG
2003-07-26 13:16 ` Marin David Condic
2003-07-26 15:23 ` Nick Roberts
2003-07-26 15:48 ` Warren W. Gay VE3WWG
2003-07-27 11:36 ` Marin David Condic
2003-07-26 19:52 ` rleif
2003-07-26 13:01 ` Marin David Condic
2003-07-24 14:46 ` Warren W. Gay VE3WWG
2003-07-24 18:50 ` tmoran
2003-07-26 13:21 ` Marin David Condic
2003-07-23 4:02 ` Robert I. Eachus [this message]
2003-07-23 12:28 ` Marin David Condic
2003-07-24 16:06 ` Robert I. Eachus
2003-07-26 13:33 ` Larry Kilgallen
2003-07-26 17:27 ` Larry Kilgallen
[not found] ` <Pine.LNX.4.44.0307221518190.26977-10000Organization: LJK Software <etldVqgp8sE1@eisner.encompasserve.org>
2003-07-26 20:18 ` Warren W. Gay VE3WWG
2003-07-26 20:24 ` Larry Kilgallen
[not found] ` <Pine.LNX.4.44.0307221518190.26977-10000Organization: LJK Software <$TwrUBtoh25l@eisner.encompasserve.org>
2003-07-26 15:07 ` Warren W. Gay VE3WWG
2003-07-27 11:43 ` Marin David Condic
[not found] ` <Pine.LNX.4.44.0307221518190.26977-10000Organization: LJK Software <q5jLYypXp6Yg@eisner.encompasserve.org>
2003-07-27 21:52 ` Warren W. Gay VE3WWG
2003-07-28 2:45 ` Larry Kilgallen
2003-08-01 17:00 ` Warren W. Gay VE3WWG
2003-08-01 17:56 ` Larry Kilgallen
2003-08-01 18:17 ` Warren W. Gay VE3WWG
2003-08-01 18:48 ` Larry Kilgallen
2003-07-22 12:59 ` Lutz Donnerhacke
2003-07-22 5:16 ` Randy Brukardt
2003-07-22 12:02 ` Marin David Condic
2003-07-22 14:45 ` Nick Roberts
2003-07-23 1:08 ` Dave Thompson
-- strict thread matches above, loose matches on Subject: below --
2003-07-17 10:39 Riccardo
2003-07-17 19:54 ` Nick Roberts
2003-07-17 20:55 ` Mark A. Biggar
2003-07-17 22:44 ` Nick Roberts
2003-07-18 3:55 ` sk
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox