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. dSetsAndStuffLocking.Mesa Last tweaked by Mike Spreitzer on September 21, 1987 12:02:22 pm PDT ΚŽ– "cedar" style˜code™KšœD™D—K˜KšΟk œ2˜;K˜šΟnœœ˜"Kš œœœœœ ˜0Kšœ+˜2K˜—K˜Kšœœ,˜6K˜šžœœœ žœœœœ˜jšžœœœœœœ œœ˜@Kšœœœ˜K˜Kšœ˜—Kšœ œ˜Kšœ˜—K˜šžœœœžœœœœ˜‚šžœœœœœœ œœ˜@Kšœœœ˜K˜"Kšœ˜—Kšœ œ˜Kšœ˜—K˜šžœœœžœœœœ˜~šžœœœœœœ œœ˜@Kšœœœ˜K˜"Kšœ˜—Kšœ œ˜Kšœ˜—K˜šžœœœžœœœœ˜xšžœœœœœœ œœ˜@Kšœœœ˜K˜"Kšœ˜—Kšœ œ˜Kšœ˜—K˜Kšœ˜—…—hZ