% $Id: NewQueueFixed.oz,v 1.1 2007/11/14 01:53:18 leavens Exp leavens $ % Compare with Figure 5.18, based on page 381 of CTM declare fun {NewQueue} Given GivePort={NewPort Given} Taken TakePort={NewPort Taken} in thread Given=Taken end queue(put:proc {$ X} {Send GivePort X} end get:proc {$ ?X} {Send TakePort X} end) end