
  PROCEDURE [INLINE] tmp$clear_lock
    (VAR lock: tmt$ptl_lock);

?? PUSH (LISTEXT := ON) ??

    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$clear_lock;

*copyc i#program_error
*copyc osv$cpus_logically_on
*copyc tmt$ptl_lock
*copyc osc$processor_defined_registers
?? POP ??
