Result {
ch := make(chan Result)
for _, conn := range conns {
go func(c Conn) {
select {
case ch <- c.DoQuery(query):
default:
}
}(conn)
}
return <-ch
}
в комментариях указано, что if the result arrives before the main function has made it to the receive, the send could fail since no one is ready. Разве в этот момент отправка не должна заблокироваться, до того момента когда операция приема из канала return <- ch не будет готова?
а DoQuery синхронная функция внутри?
Обсуждают сегодня