aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchrislu <chris.lu@gmail.com>2021-12-28 16:30:33 -0800
committerchrislu <chris.lu@gmail.com>2021-12-28 16:30:33 -0800
commit9a00c17555e00e6c3b05c93add9042a3293cfb19 (patch)
tree2f0199249ae12f420427aec8453b2612d00a2b3f
parentf7a6f6b4c02539608d913e0b677dc42508b1279c (diff)
downloadseaweedfs-9a00c17555e00e6c3b05c93add9042a3293cfb19.tar.xz
seaweedfs-9a00c17555e00e6c3b05c93add9042a3293cfb19.zip
reader: avoid wrong pattern detection due to lock waiting
-rw-r--r--weed/filer/reader_at.go4
1 files changed, 2 insertions, 2 deletions
diff --git a/weed/filer/reader_at.go b/weed/filer/reader_at.go
index b73526761..670de382c 100644
--- a/weed/filer/reader_at.go
+++ b/weed/filer/reader_at.go
@@ -105,11 +105,11 @@ func (c *ChunkReadAt) Close() error {
func (c *ChunkReadAt) ReadAt(p []byte, offset int64) (n int, err error) {
+ c.readerPattern.MonitorReadAt(offset, len(p))
+
c.readerLock.Lock()
defer c.readerLock.Unlock()
- c.readerPattern.MonitorReadAt(offset, len(p))
-
// glog.V(4).Infof("ReadAt [%d,%d) of total file size %d bytes %d chunk views", offset, offset+int64(len(p)), c.fileSize, len(c.chunkViews))
return c.doReadAt(p, offset)
}