From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: * X-Spam-Status: No, score=1.1 required=5.0 tests=BAYES_40,INVALID_DATE autolearn=no autolearn_force=no version=3.4.4 Path: utzoo!news-server.csri.toronto.edu!cs.utexas.edu!sdd.hp.com!zaphod.mps.ohio-state.edu!magnus.acs.ohio-state.edu!csn!ncar!gatech!mcnc!uvaarpa!vger.nsu.edu!g_harrison From: g_harrison@vger.nsu.edu (George C. Harrison, Norfolk State University) Newsgroups: comp.lang.ada Subject: Immediate Reading in Tasks Message-ID: <739.27e1226c@vger.nsu.edu> Date: 15 Mar 91 23:37:15 GMT List-Id: 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 ---------------------------------