<<>> <> <> <> <> <<>> <> <> <> <<>> DIRECTORY Finalize USING [FinalizationState, Handle], Process USING [Priority, priorityForeground]; FinalizeOps: CEDAR DEFINITIONS ~ BEGIN <<>> Handle: TYPE = Finalize.Handle; <> <> <> <<>> IsFinalizeOpsHandle: PROC [handle: Finalize.Handle] RETURNS [BOOL]; <> FinalizeProc: TYPE = PROC [handle: Handle, object: REF]; <> <> <<>> CallQueue: TYPE = REF CallQueueRep; <> CallQueueRep: TYPE; IsCallQueue: PROC [x: REF] RETURNS [BOOL]; <> <<>> NarrowCallQueue: PROC [x: REF] RETURNS [CallQueue]; <> <<>> EnableFinalization: PROC [object: REF, callQueue: CallQueue] RETURNS [handle: Handle]; <> <<>> ReenableFinalization: PROC [handle: Handle] RETURNS [oldState: Finalize.FinalizationState]; <> <> <> CreateCallQueue: PROC [finalize: FinalizeProc, priority: Process.Priority ¬ Process.priorityForeground] RETURNS [CallQueue]; <> END.