Initialize:
ENTRY
PROCEDURE [interrupt: Interrupt, enableAbort, enableTimeout:
BOOLEAN,
lapse: Process.Milliseconds ← maximumLapse]
RETURNS [mask:
WORD] =
TRUSTED
INLINE
BEGIN
ENABLE UNWIND => NULL;
[interrupt.condition, mask] ← PrincOpsUtils.AllocateNakedCondition[];
IF enableAbort
THEN Process.EnableAborts[pCondition: interrupt.condition]
ELSE Process.DisableAborts[pCondition: interrupt.condition];
IF enableTimeout
THEN Process.SetTimeout[condition: interrupt.condition, ticks: Process.MsecToTicks[lapse]]
ELSE Process.DisableTimeout[condition: interrupt.condition];
RETURN[mask];
END;