diff options
| author | chrislu <chris.lu@gmail.com> | 2022-12-21 14:15:35 -0800 |
|---|---|---|
| committer | chrislu <chris.lu@gmail.com> | 2022-12-21 14:15:35 -0800 |
| commit | 77b7c9f7ccce5ac9e4b0cb22b6018e5758a4c380 (patch) | |
| tree | 141c0682cedbe38a0fd3677df9db907f192a5d34 | |
| parent | d1797deccb817ae89edda016d192bcf45f80ea32 (diff) | |
| download | seaweedfs-77b7c9f7ccce5ac9e4b0cb22b6018e5758a4c380.tar.xz seaweedfs-77b7c9f7ccce5ac9e4b0cb22b6018e5758a4c380.zip | |
lock and unlock chunks for read
| -rw-r--r-- | weed/mount/page_writer/upload_pipeline_lock.go | 4 |
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 { |
