refactoring: heapManager.end(ch chan<- interface{})
Vladimir Bauer
3 years ago
| 86 | 86 | case h_fix: |
| 87 | 87 | heap.Fix(&bHeap, req.data.(int)) |
| 88 | 88 | case h_end: |
| 89 | ch := req.data.(chan<- interface{}) | |
| 90 | if ch != nil { | |
| 91 | go func() { | |
| 92 | ch <- []*Bar(bHeap) | |
| 93 | }() | |
| 94 | } | |
| 89 | 95 | close(m) |
| 90 | data := req.data.(chan []*Bar) | |
| 91 | data <- bHeap | |
| 92 | 96 | } |
| 93 | 97 | } |
| 94 | 98 | } |
| 116 | 120 | m <- heapRequest{cmd: h_push, data: index} |
| 117 | 121 | } |
| 118 | 122 | |
| 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} | |
| 123 | 125 | } |
| 124 | 126 | |
| 125 | 127 | func syncWidth(matrix map[int][]chan int) { |