comp.lang.ada
 help / color / mirror / Atom feed
From: Poul-Erik Andreasen <poulerik@pea.dk>
Subject: Re: Advice on abort
Date: Wed, 09 Nov 2005 15:12:18 +0100
Date: 2005-11-09T15:12:18+01:00	[thread overview]
Message-ID: <437203c7$0$158$edfadb0f@dread11.news.tele.dk> (raw)
In-Reply-To: <u0m8x4ae976b$.1i2o5z7fcbhoh$.dlg@40tude.net>

Dmitry A. Kazakov wrote:
> On Tue, 08 Nov 2005 17:59:41 +0100, Poul-Erik Andreasen wrote:
> 
> 
>>Dmitry A. Kazakov wrote:
> 
> 
>>>It all depends on the particular implementation of the socket library and
>>>how Ada tasks are mapped to system threads and processes. All sorts of
>>>resource leaks are thinkable. For example, you might be unable to listen
>>>that TCP/IP port until process restart or it won't abort etc.
>>
>>The time of the abortion are at the end of the first part of the
>>ACT so a cant se how the following could make any problems.
> 
> 
> Just consider a possible implementation of abort. You have a pending
> operation on some hardware. Let a driver lock TCB and relevant memory pages
> until I/O completion. What an Ada RTL might undertake against that, if
> there is no way to cancel it, or more probably, it just does not know about
> any I/O of this kind?
> 
> Consider Ada RTL scheduling Ada tasks within one system thread. In this
> case any alien I/O will block everything including whole Ada RTL.

Maybee i am a litle dump, but will these to implementation make the same
broblems whether you are inside or outside ACT

> Consider ACT implementation which simply stops busy polling for I/O status
> and leaves things as they are. That is: I/O continues and your task goes
> further. Any consequent operation will block. Any re-opening of the same
> communication channel will fail.

The ACT-feature i made deliberately for dealing with posibbly blocking
situations, and to avoiding a language-feature, on the basis of 
potentiel bad implementation, is to mee a wierd way of thinking.

> --------
> The best solution is to use some semi-standard library. Unfortunately Ada
> does not have sockets. But if we are talking about GNAT then obviously to
> use GNAT.Sockets is the first candidate to consider, because ACT (no pun
> intended (:-)) will hopefully take care of its reasonable implementation of
> all platforms they support.
> 

Quite agree

PEA



  reply	other threads:[~2005-11-09 14:12 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-11-04 15:25 Advice on abort REH
2005-11-04 17:15 ` Marc A. Criley
2005-11-04 18:21 ` Dmitry A. Kazakov
2005-11-04 18:35   ` REH
2005-11-05 18:33   ` Simon Wright
2005-11-05 21:23     ` REH
2005-11-06 11:17       ` Simon Wright
2005-11-06 13:58         ` REH
2005-11-06 20:08           ` Simon Wright
2005-11-06 20:41             ` REH
2005-11-07 14:55 ` Poul-Erik Andreasen
2005-11-07 17:09   ` REH
2005-11-07 18:03     ` Dmitry A. Kazakov
2005-11-08 14:54       ` Poul-Erik Andreasen
2005-11-08 16:14         ` Dmitry A. Kazakov
2005-11-08 16:42           ` Marc A. Criley
2005-11-08 16:59           ` Poul-Erik Andreasen
2005-11-08 20:05             ` Dmitry A. Kazakov
2005-11-09 14:12               ` Poul-Erik Andreasen [this message]
2005-11-09 17:14                 ` Dmitry A. Kazakov
2005-11-08 16:32         ` Marc A. Criley
2005-11-08 14:35     ` Poul-Erik Andreasen
replies disabled

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