DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦ac065e0e5⟧ Ada Source

    Length: 3072 (0xc00)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Phil, seg_058311

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« 
        └─⟦this⟧ 

E3 Source Code



--::::::::::
--phil.adb
--::::::::::
with Room;
with Random;
package body Phil is

    task body Philosopher is

        Who_Am_I : Positive;
        First_Grab : Positive;
        Second_Grab : Positive;
        Meal_Time : Natural;
        Think_Time : Natural;

    begin
        accept Come_To_Life (My_Id : Positive;
                             Chopstick1 : Positive;
                             Chopstick2 : Positive) do
            Who_Am_I := My_Id;
            First_Grab := Chopstick1;
            Second_Grab := Chopstick2;

        end Come_To_Life;

        Room.Head_Waiter.Report_State (Who_Am_I, Breathing);

        loop

            Room.Sticks (First_Grab).Pick_Up;
            Room.Head_Waiter.Report_State (Who_Am_I, Got_One_Stick, First_Grab);

            Room.Sticks (Second_Grab).Pick_Up;
            Room.Head_Waiter.Report_State
               (Who_Am_I, Got_Other_Stick, Second_Grab);

            Meal_Time := Random.Random_Int (10);
            Room.Head_Waiter.Report_State (Who_Am_I, Eating, Meal_Time);

            delay Duration (Meal_Time);
            Room.Head_Waiter.Report_State (Who_Am_I, Done_Eating);

            Room.Sticks (First_Grab).Put_Down;
            Room.Sticks (Second_Grab).Put_Down;

            Think_Time := Random.Random_Int (10);
            Room.Head_Waiter.Report_State (Who_Am_I, Thinking, Think_Time);
            delay Duration (Think_Time);

        end loop;

    end Philosopher;

end Phil;


E3 Meta Data

    nblk1=2
    nid=0
    hdr6=4
        [0x00] rec0=26 rec1=00 rec2=01 rec3=034
        [0x01] rec0=13 rec1=00 rec2=02 rec3=001
    tail 0x217658ea487e288db3144 0x42a00088462060003