Codebase list golang-github-vbauerster-mpb / 3a83bcb
refactoring: heapManager.end(ch chan<- interface{}) Vladimir Bauer 3 years ago
2 changed file(s) with 9 addition(s) and 13 deletion(s). Raw diff Collapse all Expand all
8686 case h_fix:
8787 heap.Fix(&bHeap, req.data.(int))
8888 case h_end:
89 ch := req.data.(chan<- interface{})
90 if ch != nil {
91 go func() {
92 ch <- []*Bar(bHeap)
93 }()
94 }
8995 close(m)
90 data := req.data.(chan []*Bar)
91 data <- bHeap
9296 }
9397 }
9498 }
116120 m <- heapRequest{cmd: h_push, data: index}
117121 }
118122
119 func (m heapManager) end() []*Bar {
120 data := make(chan []*Bar)
121 m <- heapRequest{cmd: h_end, data: data}
122 return <-data
123 func (m heapManager) end(ch chan<- interface{}) {
124 m <- heapRequest{cmd: h_end, data: ch}
123125 }
124126
125127 func syncWidth(matrix map[int][]chan int) {
279279 p.cancel() // cancel all bars
280280 }
281281 case <-p.done:
282 if s.shutdownNotifier != nil {
283 go func() {
284 s.shutdownNotifier <- s.hm.end()
285 }()
286 } else {
287 close(s.hm)
288 }
282 s.hm.end(s.shutdownNotifier)
289283 close(p.shutdown)
290284 return
291285 }