Go backward to Composing Open Systems
Go up to Top
Go forward to Queue Specification

A Queue Process

Process Queue
output var i.ack, o.sig initially 0, o.val;
internal var q initially <q>;
input var i.sig, i.val, o.ack;
cobegin
   loop <
   if (i.ack notequal i.sig) and (|q| < N)
   then q := q o <i.val>; i.ack := not i.ack
   > endloop
||
   loop <
   if (o.ack notequal o.sig) and (|q| > 0)
   then o.val := head(q); q := tail(q); o.sig := not o.sig
   > endloop
coend


Wolfgang.Schreiner@risc.uni-linz.ac.at
Id: spec1.tex,v 1.1 1996/05/13 09:04:04 schreine Exp schreine

Prev Up Next