with Ada.Text_IO; use Ada.Text_IO;
with Queue_Pack_Protected_Generic;
procedure Queue_Test_Protected_Generic is
package Queue_Pack_Protected_Character is
new Queue_Pack_Protected_Generic (Element => Character, Queue_Size => 10);
use Queue_Pack_Protected_Character;
Queue : Protected_Queue;
task Producer is end Producer;
task Consumer is end Consumer;
task body Producer is
subtype Lower is Character range 'a' .. 'z';
begin
for Ch in Lower loop
Queue.Enqueue (Ch);
end loop;
end Producer;
task body Consumer is
Item : Character;
begin
loop
select
Queue.Dequeue (Item);
Put ("Received: "); Put (Item); Put_Line ("!");
or delay 0.001;
exit;
end select;
end loop;
end Consumer;
begin
null;
end Queue_Test_Protected_Generic;