-- Dining Philosophers - Ada 95 edition
--
-- Chopstick is an Ada95 protected type
--
-- Michael B. Feldman, The George Washington University, July 1995.
-- HOOD version by Pierre Dissaux, TNI, June 1998.
-- required interface :
-- Required OPERATION : NONE
-- Required EXCEPTION : NONE
-- Required TYPE : NONE
-- Required CONSTANT : NONE
-- Required DATA : NONE
-- visibility on required modules :
package chop is
protected type Stick is
entry pick_up;
procedure put_down;
private
In_Use : Boolean := false;
end Stick;
type Stick_Ptr is access all Stick;
procedure pick_up (
me : IN OUT stick);
procedure put_down (
me : IN OUT stick);
end chop;
-- Dining Philosophers - Ada 95 edition
--
-- Chopstick is an Ada95 protected type
--
-- Michael B. Feldman, The George Washington University, July 1995.
-- HOOD version by Pierre Dissaux, TNI, June 1998.
-- visibility on required modules :
-- visibility on objects required by nested operation bodies :
package body chop is
protected body Stick is
entry pick_up when not In_Use is
begin
In_Use := True;
end pick_up;
procedure put_down is
begin
In_Use := False;
end put_down;
end Stick;
procedure pick_up (
me : IN OUT stick) is
begin
me.pick_up;
end pick_up;
procedure put_down (
me : IN OUT stick) is
begin
me.put_down;
end put_down;
end chop;