|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T V
Length: 1270 (0x4f6)
Types: TextFile
Names: »V«
└─⟦180fe333a⟧ Bits:30000405 8mm tape, Rational 1000, SW CATALOG, 10_20_0
└─⟦180fe333a⟧ Bits:30000537 8mm tape, Rational 1000, SW Catalog 10_20_0
└─⟦5cb1d1d7f⟧ »DATA«
└─⟦3b1ee7bd8⟧
└─⟦this⟧
--
--
-- THIS PROGRAM ILLUSTRATES USE OF TASKING TO PROVIDE SHARED ACCESS
-- TO GLOBAL VARIABLES. THE VALUES IT OUTPUTS MAY VARY FROM RUN
-- TO RUN DEPENDING ON HOW TASKING IS IMPLEMENTED.
-- A "FIFO" SOLUTION TO THE READERS/WRITERS PROBLEM.
-- AUTHORS: GERALD FISHER AND ROBERT DEWAR.
-- (MODIFIED BY BRYCE BARDIN TO TERMINATE GRACEFULLY.)
-- MAY BE USED TO PROVIDE SHARED ACCESS TO OBJECTS BY AN
-- ARBITRARY NUMBER OF READERS AND WRITERS WHICH ARE SERVICED
-- IN ORDER FROM A SINGLE QUEUE. WRITERS ARE GIVEN UNINTERRUPTED
-- ACCESS FOR UPDATES AND READERS ARE ASSURED THAT UPDATES ARE
-- INDIVISIBLE AND THEREFORE COMPLETE WHEN READ ACCESS IS
-- GRANTED.
--
-- IF C IS A TASK OBJECT OF TYPE CONTROL AND O IS AN OBJECT WHICH
-- IS TO BE SHARED BETWEEN READERS AND WRITERS USING C, THEN:
--
-- READERS SHOULD DO:
--
-- C.START(READ);
-- <READ ALL OR PART OF O>
-- C.STOP;
--
-- AND WRITERS SHOULD DO:
--
-- C.START(WRITE);
-- <UPDATE ALL OR PART OF O>
-- C.STOP;
package Readers_Writers is
type Service is (Read, Write);
task type Control is
entry Start (Mode : Service); -- START READERS OR WRITERS
entry Stop; -- STOP READERS OR WRITERS
end Control;
end Readers_Writers;