comp.lang.ada
 help / color / mirror / Atom feed
From: Wayne Lydecker <wayne@mtws.visicom.com>
Subject: Re: Ada 95 tasking problems with Ada 83 code
Date: 2000/08/30
Date: 2000-08-30T00:00:00+00:00	[thread overview]
Message-ID: <39ADDD71.CE3F1203@mtws.visicom.com> (raw)
In-Reply-To: 39ADD3A3.381DEF17@ix.netcom.com

Richard Riehle wrote:
> 
> Wayne Lydecker wrote:
> 
> > I am porting a huge program from Ada 83 on HP-UX to GNAT Ada 95 on a PC
> > running Linux.  Creating the executable was not a big problem, but I
> > can't get it to run very far.  It appears that when a procedure rendezvous'
> > with a task, the task won't run.  The task has a simple accept statement,
> > and it appears to accept the rendezvous because the calling routine
> > continues to process.  Text_IO calls before and after the accept statement
> > in the task fail to appear on the screen though.  If I put a "do ... end"
> > on the accept statement then the caller no longer continues (i.e.
> > suspended).
> >
> > Is this a known problem?  Is there a solution other then removing all
> > tasks in our program (over 100).
> >
> 
> You mention the calls to Text_IO.  This is a potential source of trouble in
> tasking, especially
> if you have any kind of Get or Get_Line statements.   Recommend looking at
> Get_Immediate,
> and Look_Ahead as possible alternatives to other Get statements.  The standard
> Get statement
> blocks waiting for input but Get_Immediate can get whatever is in the buffer
> without waiting
> for a CR/LF.
> 
> This may not be the entire source of your problem.   Although converting a
> task-based program
> from Ada 83 to Ada 95 is fairly straightforward,  you can encounter other
> problems due to timing
> issues (sometimes people put delay statements into task-based programs),
> mutual exclusion
> problems (the use of task-based semaphores instead of protected objects), and
> other little gotchas
> that result in a compiled program that will not run as expected.   Another
> possibility is schedulability.
> For example, are all the tasks at the same level of priority?    Have you done
> a careful analysis of
> the schedulability of the design using RMA tools?    With over 100 tasks, it is
> essential that you
> examine the schedulability issue using contemporary mathematical tools such as
> RMA.
> 
> Do not automatically assume you must eliminate tasking from your program.
> Properly designed,
> tasking can work quite well and give your program a level of robust perfomance
> you might not
> otherwise be able to easily achieve.  This is especially true of the Ada 95
> tasking model.
> 
> Richard Riehle

Thanks Richard.  I put in the text_IO.Put_Line calls to help diagnose the
problem.  No get's.  The debugger was not giving me enough information
(probably because it gdbtk is new to me).

There are delay statements in the select statements but I am having problems
with the "accept init;" which allows the task to start executing.  I don't
get the text_io.put_line call I put in immediately after it.

I am unfamiliar with RMA.  I will look into it.  My next approach will be
to write a simple program to see if I can duplicate it easily.  Then I
can publish that and see if others experience the same problem I am.

Thanks again,

Wayne.




  reply	other threads:[~2000-08-30  0:00 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-08-30  0:00 Ada 95 tasking problems with Ada 83 code Wayne Lydecker
2000-08-30  0:00 ` Richard Riehle
2000-08-30  0:00   ` Wayne Lydecker [this message]
2000-08-31  0:00     ` Jeff Creem
2000-08-31 20:07     ` Robert Barron
2000-09-01  3:21   ` Wayne Lydecker
2000-09-01  4:17     ` Richard Riehle
     [not found]       ` <39B046AE.A05C82AA@mtws.visicom.com>
2000-09-02  1:04         ` Jeff Creem
2000-09-05 19:11           ` Richard Riehle
2000-09-05 17:12         ` Richard Riehle
2000-09-06  0:19           ` Ted Dennison
2000-09-06  2:38           ` Wayne Lydecker
2000-09-07  5:35             ` Simon Wright
2000-09-02 22:54       ` Pat Rogers
2000-09-05 17:31         ` Richard Riehle
2000-09-05 18:51           ` Pat Rogers
2000-09-05 19:00             ` Richard Riehle
2000-09-05 19:33               ` Pat Rogers
2000-09-01 20:01     ` Robert A Duff
2000-08-31 16:00 ` Bill Dale
2000-08-31 17:57   ` Richard Riehle
replies disabled

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