value.go
func (lf *logFile) openReadOnly() error {
	var err error
	lf.fd, err = os.OpenFile(lf.path, os.O_RDONLY, 0666)
	if err != nil {
		return errors.Wrapf(err, "Unable to open %q as RDONLY.", lf.path)
	}

	fi, err := lf.fd.Stat()
	if err != nil {
		return errors.Wrapf(err, "Unable to check stat for %q", lf.path)
	}
	y.AssertTrue(fi.Size() <= math.MaxUint32)
	lf.size = uint32(fi.Size())

	if err = lf.mmap(fi.Size()); err != nil {
		_ = lf.fd.Close()
		return y.Wrapf(err, "Unable to map file")
	}

	return nil
}
func (lf *logFile) openReadOnly() error {
	var err error
	lf.fd, err = os.OpenFile(lf.path, os.O_RDONLY, 0666)
	if err != nil {
		return errors.Wrapf(err, "Unable to open %q as RDONLY.", lf.path)
	}

	fi, err := lf.fd.Stat()
	if err != nil {
		return errors.Wrapf(err, "Unable to check stat for %q", lf.path)
	}
	y.AssertTrue(fi.Size() <= math.MaxUint32)
	lf.size = uint32(fi.Size())

	if err = lf.mmap(fi.Size()); err != nil {
		_ = lf.fd.Close()
		return y.Wrapf(err, "Unable to map file")
	}

	return nil
}
func ( lf * logFile ) openReadOnly ( ) error { var err error lf . fd , err = os . OpenFile ( lf . path , os . O_RDONLY , 0666 ) if err != nil { return errors . Wrapf ( err , " " , lf . path ) } fi , err := lf . fd . Stat ( ) if err != nil { return errors . Wrapf ( err , " " , lf . path ) } y . AssertTrue ( fi . Size ( ) <= math . MaxUint32 ) lf . size = uint32 ( fi . Size ( ) ) if err = lf . mmap ( fi . Size ( ) ) ; err != nil { _ = lf . fd . Close ( ) return y . Wrapf ( err , " " ) } return nil }
// openReadOnly assumes that we have a write lock on logFile.
openReadOnly assumes that we have a write lock on logFile .