From: g_harrison@vger.nsu.edu (George C. Harrison, Norfolk State University)
Subject: Immediate Reading in Tasks
Date: 15 Mar 91 23:37:15 GMT [thread overview]
Message-ID: <739.27e1226c@vger.nsu.edu> (raw)
Ada teachers and Real-Time types -
I'd like some helpful hints about how to handle an "immediate get" type of
procedure in a tasking environment. By "immediate get" (IGET) I mean the
ability to read a character directly from the keyboard without pressing the
return key. Some, if not most, implementations of Ada have the ability to do
such a reading albeit indirectly.
Here's the "problem."
Doing an IGET inside a task generally causes the other tasks to wait until the
user presses a key. In my real time simulations for my students when they must
act as monitors or interrups it would be nice to have the program run with all
its tasks until a key is pressed (and then read, if necessary).
Do-While Jones in "Ada in Action" proposes a solution similar to the following:
Define a function KEYPRESSED (boolean) and an IGET procedure that only works
when KEYPRESSED is TRUE. These subroutines call a task which essentially holds
the incoming character as the value of a local [task] variable, setting
KEYPRESSED to true until the character is retrieved from the task.
So another task might do this:
loop
do_stuff;
if keypressed then
iget(ch);
do_something_with_ch;
else
do_something_else;
end if;
end loop;
I welcome any and all ideas. I have used the Do-While Jones method, but it
seems to have a lot of overhead.
George
-- George C. Harrison -----------------------
----- Professor of Computer Science -----------------------
----- Norfolk State University -----------------------
----- 2401 Corprew Avenue, Norfolk, Virginia 23504 -----------------------
----- INTERNET: g_harrison@vger.nsu.edu ---------------------------------
next reply other threads:[~1991-03-15 23:37 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
1991-03-15 23:37 George C. Harrison, Norfolk State University [this message]
1991-03-19 3:19 ` Immediate Reading in Tasks William Loftus
1991-03-27 20:00 ` Use clauses in the visible parts of packages??? Scott Layson Burson
1991-03-28 17:17 ` Fred Stluka
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox