diff --git a/heap_manager.go b/heap_manager.go index 00979df..cece008 100644 --- a/heap_manager.go +++ b/heap_manager.go @@ -45,7 +45,9 @@ case h_push: data := req.data.(*pushData) heap.Push(&bHeap, data.bar) - sync = data.sync + if !sync { + sync = data.sync + } case h_sync: if sync || l != bHeap.Len() { pMatrix = make(map[int][]chan int) @@ -59,8 +61,9 @@ aMatrix[i] = append(aMatrix[i], ch) } } + sync = false + l = bHeap.Len() } - l = bHeap.Len() syncWidth(pMatrix) syncWidth(aMatrix) case h_iter: