comp.lang.ada
 help / color / mirror / Atom feed
From: Jano <nono@celes.unizar.es>
Subject: Re: tasking with GNAT 3.14p on windows
Date: Tue, 1 Apr 2003 00:16:29 +0200
Date: 2003-04-01T00:16:29+02:00	[thread overview]
Message-ID: <MPG.18f2dca67f9d5139896cd@News.CIS.DFN.DE> (raw)
In-Reply-To: b6a1nm$1ogu$1@msunews.cl.msu.edu

Chad R. Meiners dice...
> 
> "Jano" <nono@celes.unizar.es> wrote in message
> news:MPG.18f2a01651aa20aa9896cb@News.CIS.DFN.DE...
> > trying to know the behavior with blocking I/O. In XP with -gnatP, you
> > get indefinite wait for user input, but if more than 10 seconds has
> > passed when you hit enter, you get also the "aborted" print.
> >
> > Is that expected behavior? Gnat docs say that polling implements calls
> > in each loop iteration / function call. Should I assume that if you
> > haven't loops / calls, abort will never work properly?
> 
> It seems like reasonable behavior.  System calls are not guaranteed to be
> abortable.

That's what I wanted to know. I'm not a RM lawyer, so I don't knew that. 
I'll be glad if someone can point the relevant sections in the RM about 
code not abortable.

> > I feel nevertheless very unsafe using anything else than trivial tasks
> > in NT. The priority system of NT messes things greatly out of
> > real_time_class, and that, for example, is never pointed in Gnat docs
> > (in my knowledge).
> 
> NT is not a real time operating system. 

I know that.

> The task support on NT is not
> broken; your understanding of Ada tasking is broken. ;)  

;) As I've said, I'm not an Ada RM expert, but I think I'm not totally 
clueless about how a multitasking program should work, if the compiler 
adheres to annex D, as Gnat says. OTOH, as far as I know, Gnat isn't 
validated under win32.

> It is very easy to
> write system dependent tasking code.  I have written several robust
> multi-tasking windows applications.  You just have to understand how to
> implement your os calls so that they play well with tasking.

I've also written multitasking window apps, and I don't like the tricks 
you must do to workaround some NT limitations, and that's about I was 
asking. One of the points of using Ada is to remain as much as possible 
in the system independent side of the world ;-)

> > Also, the faulty ceiling_priority model for protected objects is
> > mentioned or not? I can't remember...
> 
> If you don't know then why are spreading FUD about tasking on NT?

Well, I was thinking out loud to see if someone shares my concerns. I 
like to be enlightened by others greater experience. I have nothing 
against Gnat nor intend to spread FUD.

The following points I believe are true, and not mentioned in Gnat NT 
documentation. I will not point the RM sections which I think aren't 
satisfied, but every time I try to read the D annex in detail, I feel a 
bit disturbed about Gnat saying it complies with it, hence my asking:

* You must set your app in realtime priority class because NT priorities 
below that class aren't static.

* You may have two tasks with different priorities specified via pragma 
priority. The two will map to the same NT priority (because there are 
less than in system.priority'range), and your tasks will preempt each 
other even having specified a higher priority for one of them. 

* The ceiling priority of protected objects is simply ignored. The 
caller will not inherit the ceiling priority. I was taught that in 
university, and my tests seem to confirm that. To be fair, I have a 
vague remembrance of reading about it, but can remember if it was in 
some papers from my professor or in Gnat docs.

These are valid concerns, I think, and not FUD. The former two I'm 
nearly sure are not in NT docs, and I think are very important for a 
newcomer which wants to experiment with tasking and has windows. You can 
blame me for trying to do realtime tasking in NT, but that's not my 
point. These things I've discovered not in gnat docs, and that was my 
original comment.

Please feel free to correct me.

Kind regards,

-- 
-------------------------
Jano
402450.at.cepsz.unizar.es
-------------------------



  reply	other threads:[~2003-03-31 22:16 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-03-30 18:49 tasking with GNAT 3.14p on windows Bernd Specht
2003-03-30 20:19 ` James S. Rogers
2003-03-30 22:14   ` Jano
2003-03-31  2:53     ` James S. Rogers
2003-03-31  6:32       ` James S. Rogers
2003-03-31  6:56       ` Sergey Koshcheyev
2003-03-31  9:00         ` 
2003-03-31 19:09       ` Bernd Specht
2003-03-31 18:14     ` Chad R. Meiners
2003-03-31 21:08       ` Jano
2003-03-31  7:57 ` 
2003-03-31  9:30   ` Ole-Hjalmar Kristensen
2003-03-31 17:58     ` Jano
2003-03-31 18:30       ` Chad R. Meiners
2003-03-31 22:16         ` Jano [this message]
2003-03-31 23:09           ` Chad R. Meiners
2003-03-31 23:44           ` Chad R. Meiners
2003-04-01 12:17             ` Jano
2003-04-01  2:40         ` Robert A Duff
2003-04-01  4:17           ` Chad R. Meiners
2003-04-01  6:25             ` Jano
2003-04-01 15:33               ` Pascal Obry
2003-04-01  8:42           ` Dmitry A. Kazakov
2003-04-02 13:35             ` Alfred Hilscher
replies disabled

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