-- remainder of task exercise, version with no input
-- for performance- functionality suite;
-- BL 10-1-84


separate (TASK_EXERCISE)
  task body BUFFER is
    Q : QUEUE;

    begin --BUFFER
     loop
       select
	when not FULL_Q( Q ) =>
          accept IN_CHAR( IN_ITEM : in CHARACTER ) do 
            ENQUEUE( Q, IN_ITEM );
          end;
       or
        when not EMPTY_Q( Q ) =>
          accept OUT_CHAR( OUT_ITEM : out CHARACTER ) do
            DEQUEUE( Q, OUT_ITEM );
          end;
       or
        accept STOP; exit;
       or
         terminate;
       end select;
     end loop;
  end BUFFER;



