With Ada.Text_IO; Use Ada.Text_IO;
With Ada.Integer_Text_IO; Use Ada.Integer_Text_IO;
procedure Program is
task Counter is
entry Get (Result : out Integer);
entry Increment;
entry Decrement;
end Counter;
task body Counter is
Value : Integer := 0;
begin
loop
select
accept Increment do
Value := Value + 1;
end Increment;
or
accept Decrement do
Value := Value - 1;
end Decrement;
or
accept Get (Result : out Integer) do
Result := Value;
end Get;
or
delay 1.0 * Minute;
exit;
end select;
end loop;
end Counter;
begin
end Program;
V2l0aCBBZGEuVGV4dF9JTzsgVXNlIEFkYS5UZXh0X0lPOyAgCldpdGggQWRhLkludGVnZXJfVGV4dF9JTzsgVXNlIEFkYS5JbnRlZ2VyX1RleHRfSU87Cgpwcm9jZWR1cmUgUHJvZ3JhbSBpcwoKIHRhc2sgQ291bnRlciBpcwplbnRyeSBHZXQgKFJlc3VsdCA6IG91dCBJbnRlZ2VyKTsKZW50cnkgSW5jcmVtZW50OwplbnRyeSBEZWNyZW1lbnQ7CmVuZCBDb3VudGVyOwp0YXNrIGJvZHkgQ291bnRlciBpcwpWYWx1ZSA6IEludGVnZXIgOj0gMDsKYmVnaW4KbG9vcApzZWxlY3QKYWNjZXB0IEluY3JlbWVudCBkbwpWYWx1ZSA6PSBWYWx1ZSArIDE7CmVuZCBJbmNyZW1lbnQ7Cm9yCmFjY2VwdCBEZWNyZW1lbnQgZG8KVmFsdWUgOj0gVmFsdWUgLSAxOwplbmQgRGVjcmVtZW50OwpvcgphY2NlcHQgR2V0IChSZXN1bHQgOiBvdXQgSW50ZWdlcikgZG8KUmVzdWx0IDo9IFZhbHVlOwplbmQgR2V0OwpvcgpkZWxheSAxLjAgKiBNaW51dGU7CmV4aXQ7CmVuZCBzZWxlY3Q7CmVuZCBsb29wOwplbmQgQ291bnRlcjsKYmVnaW4KZW5kIFByb2dyYW07