Skip to content

Commit 77e6385

Browse files
committed
fix pq ordering
1 parent f8c6375 commit 77e6385

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

code/go/0chain.net/blobbercore/seqpriorityqueue/seqpriorityqueue.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ func (pq *SeqPriorityQueue) Done(v UploadData) {
7878

7979
func (pq *SeqPriorityQueue) Popup() UploadData {
8080
pq.lock.Lock()
81-
for pq.queue.Len() == 0 && !pq.done || (pq.queue.Len() > 0 && pq.queue[0].Offset != pq.next) {
81+
for pq.queue.Len() == 0 && !pq.done || (pq.queue.Len() > 0 && pq.queue[0].Offset > pq.next) {
8282
pq.cv.Wait()
8383
}
8484
if pq.done {
@@ -91,8 +91,11 @@ func (pq *SeqPriorityQueue) Popup() UploadData {
9191
retItem := UploadData{
9292
Offset: pq.next,
9393
}
94-
for pq.queue.Len() > 0 && pq.queue[0].Offset == pq.next {
94+
for pq.queue.Len() > 0 && pq.queue[0].Offset <= pq.next {
9595
item := heap.Pop(&pq.queue).(UploadData)
96+
if item.Offset < pq.next {
97+
continue
98+
}
9699
pq.next += item.DataBytes
97100
}
98101
retItem.DataBytes = pq.next - retItem.Offset

0 commit comments

Comments
 (0)