Anonymous user
Echo server: Difference between revisions
m
→{{header|Ada}}
m (→{{header|Ada}}) |
|||
Line 54:
with Ada.IO_Exceptions;
with GNAT.Sockets;
procedure
-- Multiple socket connections example based on Rosetta Code
Tasks_To_Create : constant := 3; -- simultaneous socket connections.
Line 66:
subtype Index is integer range 1 .. Tasks_To_Create;
protected type Info is
procedure Push_Stack (Return_Task_Index : in
procedure Initialize_Stack;
entry Pop_Stack (Get_Task_Index : out
private
Task_Stack : Integer_List; -- Stack of free-to-use tasks.
Line 76:
protected body Info is
procedure Push_Stack (Return_Task_Index : in
begin -- Performed by tasks that were popped, so won't overflow.
Stack_Pointer := Stack_Pointer + 1;
Line 82:
end;
entry Pop_Stack (Get_Task_Index : out
begin -- guarded against underflow.
Get_Task_Index := Task_Stack(Stack_Pointer);
Line 90:
procedure Initialize_Stack is
begin
for I in Task_Stack'
Push_Stack (I);
end loop;
Line 194:
begin
Echo_Server.Listen;
end
</lang>
|