diff --git a/internal/data/datafile.go b/internal/data/datafile.go index 2949ec1..8c419d4 100644 --- a/internal/data/datafile.go +++ b/internal/data/datafile.go @@ -6,9 +6,9 @@ import ( "path/filepath" "sync" - "github.com/pkg/errors" "git.mills.io/prologic/bitcask/internal" "git.mills.io/prologic/bitcask/internal/data/codec" + "github.com/pkg/errors" "golang.org/x/exp/mmap" ) @@ -159,6 +159,9 @@ func (df *datafile) ReadAt(index, size int64) (e internal.Entry, err error) { b := make([]byte, size) + df.RLock() + defer df.RUnlock() + if df.ra != nil { n, err = df.ra.ReadAt(b, index) } else {