Add OpenMmapFileWithSize method (#6753)

Signed-off-by: Ganesh Vernekar <cs15btech11018@iith.ac.in>
This commit is contained in:
Ganesh Vernekar 2020-02-05 19:08:30 +05:30 committed by GitHub
parent 49f8850a3c
commit 56bf0ee4dc
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -25,16 +25,23 @@ type MmapFile struct {
} }
func OpenMmapFile(path string) (*MmapFile, error) { func OpenMmapFile(path string) (*MmapFile, error) {
return OpenMmapFileWithSize(path, 0)
}
func OpenMmapFileWithSize(path string, size int) (*MmapFile, error) {
f, err := os.Open(path) f, err := os.Open(path)
if err != nil { if err != nil {
return nil, errors.Wrap(err, "try lock file") return nil, errors.Wrap(err, "try lock file")
} }
info, err := f.Stat() if size <= 0 {
if err != nil { info, err := f.Stat()
return nil, errors.Wrap(err, "stat") if err != nil {
return nil, errors.Wrap(err, "stat")
}
size = int(info.Size())
} }
b, err := mmap(f, int(info.Size())) b, err := mmap(f, size)
if err != nil { if err != nil {
return nil, errors.Wrap(err, "mmap") return nil, errors.Wrap(err, "mmap")
} }