

PROCEDURE [INLINE] tmp$new_clear_lock (VAR lock: tmt$new_ptl_lock);

    IF osv$cpus_logically_on > 1 THEN
      IF lock.id <> #READ_REGISTER (osc$pr_base_constant) THEN
        i#program_error; {Interlock failure - no message passed for performance reasons}
      IFEND;
      IF lock.count > 0 THEN
        lock.count := lock.count - 1;
      ELSE
        lock.clear := 0;
      IFEND;
    IFEND;

PROCEND   tmp$new_clear_lock;

?? PUSH (LISTEXT := ON) ??
*copyc i#program_error
*copyc osv$cpus_logically_on
*copyc tmt$new_ptl_lock
*copyc osc$processor_defined_registers
?? POP ??
