Can you read a goroutine channel into nothing? where does this channel read go to in this statement?
go func() {
<-ctx.Done()
logger.Errorf("canceled: %v", ctx.Err())
}()
Addition:
Would this code be any different than if I used the blank identifier
go func() {
_ = <-ctx.Done()
logger.Errorf("canceled: %v", ctx.Err())
}()
Yes, you can do that.
It does not need to go anywhere.
Purpose of the Done
channel usually is just to signal the done event, so the value is not relevant and can be ignored.
It is the same as when you call a function and don't assign the return values to variables.
Consider this:
func getInt() int {
return 1
}
func main() {
getInt() // does not "go anywhere"
}
See this playground showing those examples:
https://play.golang.org/p/CA8P7gYpok
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With