comp.lang.ada
 help / color / mirror / Atom feed
From: arny@wayback.UUCP (Arny B. Engelson)
Subject: Re: Help me to solve this problem!
Date: Tue, 25-Aug-87 17:15:05 EDT	[thread overview]
Date: Tue Aug 25 17:15:05 1987
Message-ID: <1192@wayback.UUCP> (raw)
In-Reply-To: 8708241839.AA01159@ucbvax.Berkeley.EDU

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

  reply	other threads:[~1987-08-25 21:15 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1987-08-24 19:06 Help me to solve this problem! HAERIM LEE
1987-08-25 21:15 ` Arny B. Engelson [this message]
1987-08-27 18:39 ` Jeff Bartlett
replies disabled

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