aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchrislu <chris.lu@gmail.com>2022-12-21 14:15:35 -0800
committerchrislu <chris.lu@gmail.com>2022-12-21 14:15:35 -0800
commit77b7c9f7ccce5ac9e4b0cb22b6018e5758a4c380 (patch)
tree141c0682cedbe38a0fd3677df9db907f192a5d34
parentd1797deccb817ae89edda016d192bcf45f80ea32 (diff)
downloadseaweedfs-77b7c9f7ccce5ac9e4b0cb22b6018e5758a4c380.tar.xz
seaweedfs-77b7c9f7ccce5ac9e4b0cb22b6018e5758a4c380.zip
lock and unlock chunks for read
-rw-r--r--weed/mount/page_writer/upload_pipeline_lock.go4
1 files changed, 4 insertions, 0 deletions
diff --git a/weed/mount/page_writer/upload_pipeline_lock.go b/weed/mount/page_writer/upload_pipeline_lock.go
index 43b04e01d..fec61b532 100644
--- a/weed/mount/page_writer/upload_pipeline_lock.go
+++ b/weed/mount/page_writer/upload_pipeline_lock.go
@@ -10,6 +10,8 @@ func (up *UploadPipeline) LockForRead(startOffset, stopOffset int64) {
if stopOffset%up.ChunkSize > 0 {
stopLogicChunkIndex += 1
}
+ up.chunksLock.Lock()
+ defer up.chunksLock.Unlock()
for i := startLogicChunkIndex; i < stopLogicChunkIndex; i++ {
if count, found := up.activeReadChunks[i]; found {
up.activeReadChunks[i] = count + 1
@@ -25,6 +27,8 @@ func (up *UploadPipeline) UnlockForRead(startOffset, stopOffset int64) {
if stopOffset%up.ChunkSize > 0 {
stopLogicChunkIndex += 1
}
+ up.chunksLock.Lock()
+ defer up.chunksLock.Unlock()
for i := startLogicChunkIndex; i < stopLogicChunkIndex; i++ {
if count, found := up.activeReadChunks[i]; found {
if count == 1 {