[comp.lang.ada] losing terminal data when using task concurrency.

visser@shapetc.UUCP (Henk Visser) (02/16/89)

An ALSYS ADA (vesrion3.2) application on a sun3/50 (SUNOS v3.2) gives me a
problem. A simplified version of the task looks as follows:

begin
  OPEN(INPUT_FILE,IN_FILE,"/dev/ttyb");
  loop
     begin
        GET_LINE(INPUT_FILE,INPUT_LINE,LINE_INDEX);
        BUFFER.WRITE(INPUT_LINE);
     end;
  end loop;
end;

The terminal handler buffers the incoming data, so no data should get lost when the rendezvous (BUFFER.WRITE) is executed. But unfortunately I do lose data.
The data is not lost if I replace the BUFFER.WRITE with a delay or something
else. So it looks like that data get lost when the task is suspended during the
rendezvous.
Who can help me to get around this problem?

Please send your mail to ..mcvax!shapetc!visser

						Thanks in advance,
							Henk Visser
							Shape Technical Centre,
							The Hague, Holland