From c54b5c44b6a1714bb214c2df44d2a39d1a3f34a0 Mon Sep 17 00:00:00 2001 From: flowerinthenight Date: Wed, 10 Jul 2024 21:40:33 +0900 Subject: [PATCH] add err for read fail count --- distmem.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/distmem.go b/distmem.go index 3256eb9..52bdc13 100644 --- a/distmem.go +++ b/distmem.go @@ -388,7 +388,7 @@ func (r *Reader) Read(out chan []byte) { defer ra.Close() var off int64 - var count int + var count, fails int for _, loc := range r.dm.dlocs { b := make([]byte, loc) n, err := ra.ReadAt(b, off) @@ -398,11 +398,21 @@ func (r *Reader) Read(out chan []byte) { r.Unlock() } + if loc != n { + fails++ + } + _ = n out <- b off = off + int64(off) count++ } + + if fails > 0 { + r.Lock() + r.err = fmt.Errorf("ReadAt failed %v times", fails) + r.Unlock() + } }() } }