docs: public boolean readLock(TransactionImpl tx, Object obj)
      {
  
          LockEntry writer = getWriter(obj);
          if (writer == null)
          {
              addReader(tx, obj);
              // if there has been a successful write locking, try again
              if (getWriter(obj) == null)
                  return true;
              else
              {
                  removeReader(tx, obj);
                  return readLock(tx, obj);
              }
          }
          if (writer.isOwnedBy(tx))
          {
              return true;    // If I'm the writer, I can read.
          }
          else
          {
              return false;
          }
      }