  PROCEDURE [INLINE] dfp$clear_write_lock
    (VAR read_write_lock: {Input, Output} dft$read_write_lock);

    VAR
      already_zero: boolean,
      new_value: integer,
      status: ost$status;

    osp$clear_signature_lock (read_write_lock.write_lock, status);
    IF NOT status.normal THEN
      osp$system_error (' ERROR CLEARING WRITE LOCK ', ^status);
    IFEND;
    osp$decrement_locked_variable (read_write_lock.writer_count,
           { Best guess = } 1, new_value, already_zero);
    IF already_zero THEN
      osp$system_error (' WRITE COUNT ALREADY ZERO', NIL);
    IFEND;
    osp$end_system_activity;
  PROCEND dfp$clear_write_lock;
?? PUSH (LISTEXT := ON) ??
*copyc dft$read_write_lock
*copyc osp$clear_signature_lock
*copyc osp$decrement_locked_variable
*copyc osp$end_system_activity
*copyc osp$system_error
?? POP ??
