
  PROCEDURE [INLINE] clp$make_lock_value
    (    lock: ^clt$lock;
     VAR work_area {input, output} : ^clt$work_area;
     VAR value: ^clt$data_value);

?? PUSH (LISTEXT := ON) ??

    clp$make_value (clc$lock, work_area, value);
    IF value <> NIL THEN
      NEXT value^.lock_value IN work_area;
      IF value^.lock_value <> NIL THEN
        value^.lock_value^ := lock^;
        RETURN;
      IFEND;
      RESET work_area TO value;
      value := NIL;
    IFEND;

  PROCEND clp$make_lock_value;

*copyc clt$data_value
*copyc clt$lock
*copyc clt$work_area
?? POP ??
*copyc clp$make_value
