MBQueueExtras.mesa
Copyright © 1985 by Xerox Corporation. All rights reserved.
Last modified by D. Swinehart, November 12, 1985 8:52:35 am PST
Model: TYPE = { pushModel, pullModel };
Event: TYPE = MBQueuePrivate.Event;
IsEmpty:
PROC[q: MBQueue.Queue]
RETURNS [empty:
BOOL];
DequeueAction waits; to avoid waiting, use this.
InsertClientAction:
PROC [q: MBQueue.Queue, proc:
PROC [
REF
ANY], data:
REF
ANY];
Allows client to queue actions other than the menu item clicks and button clicks, which
are user-initiated. The client's proc will be called before any other queued action that has not yet been started.
ChangeModel:
PROC[q: MBQueue.Queue, model: Model];
$pushModel: set state and create process if the queue is non-empty and there isn't one.
$pullModel: set state; any existing process will disappear the next time it awakens.
}.