4 ms·
Closing the channel is fine, I suppose, although the supervising goroutine now looks a bit odd: select { case _, _ := <- doneChannel // Other
by lobster_johnson 14y ago
Closing the channel is fine, I suppose, although the supervising goroutine now looks a bit odd:
select {
case _, _ := <- doneChannel
// Other goroutine is now done
It's so implicit that you pretty much have to add a comment to the effect of "this will trigger when the channel is closed", whereas the "case <- doneChannel" is so obvious it doesn't need explaining.
Also, I rather prefer the supervising goroutine to "own" the channel, so it should be the one to close it.
> you ca't just have a defer block without a function invocation
Yeah, I was not thinking Go there for a moment. Should have been "defer func() { doneChannel <- true }".
- redbad 14y ago> the supervising goroutine now looks a bit odd: This is totally valid: select { case <-doneChannel: //