From: Wayne Lydecker <wayne@mtws.visicom.com>
Subject: Re: Ada 95 tasking problems with Ada 83 code
Date: Thu, 31 Aug 2000 20:21:50 -0700
Date: 2000-08-31T20:21:50-07:00 [thread overview]
Message-ID: <39AF20CE.FDBDFFFE@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.
><snip>
> Richard Riehle
That's it! Turns out that the test program that starts the main
program creates a task that displays a menu and then uses a call to
text_io.get_line. Evidently, the get_line in a task blocks the main
program.
I tried text_io.look_ahead, but end_of_line was always False. Do
I have to check each character for <CR>? Text_IO.Get_Immediate
works fine for single characters, but again I would have to search
for <CR>.
Would it work OK to reverse what is going on here and create a new task
to launch the main program and keep the test driver as a procedure?
Would the text_io.get_line still block the main program?
Thanks again Richard, I was about to perform a major re-write. I
am almost complete with my task ;-)
-- Wayne.
next prev parent reply other threads:[~2000-09-01 3:21 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
2000-08-31 0:00 ` Jeff Creem
2000-08-31 20:07 ` Robert Barron
2000-09-01 3:21 ` Wayne Lydecker [this message]
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