language-Modula2-0.1: examples/Modula-2_Libraries/PMOS/sources/unsorted/minicirc.def
DEFINITION MODULE MiniCircularBuffers;
(****************************************************************)
(* *)
(* Circular Buffer for passing character data *)
(* between a pair of tasks. (Demonstration version.) *)
(* *)
(* Author: P. Moylan *)
(* Last edited: 16 August 1992 *)
(* *)
(* Status: OK. *)
(* *)
(****************************************************************)
TYPE CircularBuffer; (* is private *)
PROCEDURE CreateBuffer (VAR (*OUT*) B: CircularBuffer; size: CARDINAL);
(* Allocates space for a circular buffer, and initializes it. The *)
(* caller specifies how many characters the buffer will hold. *)
PROCEDURE PutBuffer (B: CircularBuffer; item: CHAR);
(* Waits for space available, then puts item at the tail of the queue. *)
PROCEDURE GetBuffer (B: CircularBuffer) : CHAR;
(* Takes one character from the head of the queue, waiting if necessary. *)
END MiniCircularBuffers.