diff --git a/heap_manager.go b/heap_manager.go index d4e39e0..079c0d0 100644 --- a/heap_manager.go +++ b/heap_manager.go @@ -14,6 +14,7 @@ h_iter h_drain h_fix + h_state h_end ) @@ -86,6 +87,9 @@ close(data.iter) case h_fix: heap.Fix(&bHeap, req.data.(int)) + case h_state: + ch := req.data.(chan<- bool) + ch <- sync || l != bHeap.Len() case h_end: ch := req.data.(chan<- interface{}) if ch != nil { @@ -121,6 +125,10 @@ m <- heapRequest{cmd: h_push, data: index} } +func (m heapManager) state(ch chan<- bool) { + m <- heapRequest{cmd: h_state, data: ch} +} + func (m heapManager) end(ch chan<- interface{}) { m <- heapRequest{cmd: h_end, data: ch} }