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=-0.8 required=5.0 tests=BAYES_00,INVALID_DATE, MSGID_SHORT autolearn=no autolearn_force=no version=3.4.4 Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!husc6!cmcl2!rutgers!clyde!wayback!arny From: arny@wayback.UUCP (Arny B. Engelson) Newsgroups: comp.lang.ada Subject: Re: Help me to solve this problem! Message-ID: <1192@wayback.UUCP> Date: Tue, 25-Aug-87 17:15:05 EDT Article-I.D.: wayback.1192 Posted: Tue Aug 25 17:15:05 1987 Date-Received: Thu, 27-Aug-87 04:36:18 EDT References: <8708241839.AA01159@ucbvax.Berkeley.EDU> Organization: AT&T Bell Labs, Whippany, NJ Summary: some ideas presented List-Id: I would expect the program to do exactly what you expected it to do. One possibility is that the delay statement is not implemented very nicely (although still legally). LRM 9.6:1 states "The execution of a delay statement ... suspends further execution of the task ... for AT LEAST the duration specified ... " [emphasis mine] Perhaps they just decided to delay forever? You mentioned VAX Ada; have you tried pragma Time_Slice? How about making the "Get (Key)" part of a timed entry call, as follows: --------------------------------------------------- task body mon is L_Key : Character; begin loop Get (L_Key); accept Got_It (Out_Key : out Character) do Out_Key := Key; end; end loop; end; task body imore is begin loop select mon.Got_It (Key); or delay Dur_Time; Print_Next_Screen; end select; end loop; end; --------------------------------------------------- I know the above code is incomplete and has some bugs in it, but I'm just trying to stimulate ideas. Besides I only thought of it as I was typing this article, and don't have time to go over it now. - Arny Engelson {ihnp4|bonnie|clyde}!wayback!arny