<> <> <> <> DIRECTORY CD USING [Design, Object]; CDOpsExtras: CEDAR DEFINITIONS = BEGIN MakeImmutableAndSetNameHints: PROC [ob: CD.Object, design: CD.Design] RETURNS [done: BOOL]; <<-- Tries to make an object immutable by making all its children immutable first,>> <<-- and then setting the objects own immutable bit.>> <<-- Sets name hint if object was mutable and is in directory of design.>> <<-- Very important: To make an object immutable is an operation which changes the >> <<-- object! It must be called only while owning the designs lock [of the design >> <<-- owning ob] with CDSequencer. [Because a parallel editing process can not check >> <<-- the immutable-bit atomicly with performing a change to the object]. >> <<-- However, this change is not propagated.>> END.