diff --git a/heap_manager.go b/heap_manager.go index 678dd7c..1b2364f 100644 --- a/heap_manager.go +++ b/heap_manager.go @@ -46,6 +46,7 @@ var sync bool for req := range m { + next: switch req.cmd { case h_push: data := req.data.(pushData) @@ -78,7 +79,8 @@ select { case data.iter <- b: case <-data.drop: - break + close(data.iter) + break next } } close(data.iter) @@ -88,7 +90,8 @@ select { case data.iter <- heap.Pop(&bHeap).(*Bar): case <-data.drop: - break + close(data.iter) + break next } } close(data.iter)