Skip to content

Commit

Permalink
fix: use range correctly so we don't drop the first item
Browse files Browse the repository at this point in the history
  • Loading branch information
crebsy committed Jul 11, 2024
1 parent 28d0aa1 commit 3fa23fe
Showing 1 changed file with 19 additions and 9 deletions.
28 changes: 19 additions & 9 deletions resume.go
Original file line number Diff line number Diff line change
Expand Up @@ -148,10 +148,8 @@ func (r *ResumeCtx) setChunkDone(rangeIdx int, chunkIdx int) {
r.lock.Lock()
defer r.lock.Unlock()

entry, ok := r.rangeEntries[rangeIdx]
if !ok {
return
}
entry := r.rangeEntries[rangeIdx]

if !entry.chunkBitset.Get(chunkIdx) {
entry.chunkBitset.Set(chunkIdx)
entry.done++
Expand All @@ -178,15 +176,21 @@ func (r *ResumeCtx) persist() {
panic(err)
}

r.resumeFile.Seek(0, io.SeekStart)
_, err = r.resumeFile.Seek(0, io.SeekStart)
if err != nil {
panic(err)
}
_, err = io.Copy(r.resumeFile, bytes.NewReader(r.ranges))
if err != nil {
panic(err)
}

dropRangeIndexes := []int{}
for rangeIdx, entry := range r.rangeEntries {
r.resumeFile.Seek(entry.fileOffset, io.SeekStart)
_, err = r.resumeFile.Seek(entry.fileOffset, io.SeekStart)
if err != nil {
panic(err)
}
_, err := io.Copy(r.resumeFile, bytes.NewReader(entry.chunkBitset))
if err != nil {
panic(err)
Expand All @@ -197,12 +201,18 @@ func (r *ResumeCtx) persist() {
}
}

for rangeIdx := range dropRangeIndexes {
//fmt.Printf("Dropping rangeIdx %d\n", rangeIdx)
for _, rangeIdx := range dropRangeIndexes {
/*if rangeIdx == 0 {
entry := r.rangeEntries[rangeIdx]
fmt.Printf("Dropping rangeIdx %d, entry.done=%d, entry.length=%d\n", rangeIdx, entry.done, entry.length)
}*/
delete(r.rangeEntries, rangeIdx)
}

r.resumeFile.Seek(offset, io.SeekStart)
_, err = r.resumeFile.Seek(offset, io.SeekStart)
if err != nil {
panic(err)
}
}

func (r *ResumeCtx) close() {
Expand Down

0 comments on commit 3fa23fe

Please sign in to comment.