SetsAndStuffLocking.Mesa
Last tweaked by Mike Spreitzer on September 21, 1987 12:02:22 pm PDT
DIRECTORY Atom, Collections, IntFunctions, PairCollections;
SetsAndStuffLocking: CEDAR MONITOR
LOCKS pml USING pml: LONG POINTER TO MONITORLOCK
EXPORTS Collections, IntFunctions, PairCollections
=
BEGIN OPEN IntFunctions, PairCollections, Collections;
UpdateSpaceOther: PUBLIC PROC [s: Space, Update: PROC [Atom.PropList] RETURNS [Atom.PropList]] ~ TRUSTED {
Entry: ENTRY PROC [pml: LONG POINTER TO MONITORLOCK] ~ TRUSTED {
ENABLE UNWIND => NULL;
s.other ← Update[s.other];
RETURN};
Entry[@s.LOCK];
RETURN};
UpdateCollectionClassOther: PUBLIC PROC [class: CollectionClass, Update: PROC [Atom.PropList] RETURNS [Atom.PropList]] ~ TRUSTED {
Entry: ENTRY PROC [pml: LONG POINTER TO MONITORLOCK] ~ TRUSTED {
ENABLE UNWIND => NULL;
class.other ← Update[class.other];
RETURN};
Entry[@class.LOCK];
RETURN};
UpdatePairCollClassOther: PUBLIC PROC [class: PairCollClass, Update: PROC [Atom.PropList] RETURNS [Atom.PropList]] ~ TRUSTED {
Entry: ENTRY PROC [pml: LONG POINTER TO MONITORLOCK] ~ TRUSTED {
ENABLE UNWIND => NULL;
class.other ← Update[class.other];
RETURN};
Entry[@class.LOCK];
RETURN};
UpdateIntFnClassOther: PUBLIC PROC [class: IntFnClass, Update: PROC [Atom.PropList] RETURNS [Atom.PropList]] ~ TRUSTED {
Entry: ENTRY PROC [pml: LONG POINTER TO MONITORLOCK] ~ TRUSTED {
ENABLE UNWIND => NULL;
class.other ← Update[class.other];
RETURN};
Entry[@class.LOCK];
RETURN};
END.