Goroutines block forever on error
Review this Go function that fans out HTTP requests and collects the first success.
What a strong answer looks like
Separate real bugs from style. Rank issues by severity, point at the root cause rather than the symptom, and suggest a concrete fix, specific and kind.
0:00 of about 22 min
Mark a line and say what kind of problem it is.0 findings
1func firstOK(urls []string) (*http.Response, error) {
2 ch := make(chan *http.Response)
3 for _, u := range urls {
4 go func(u string) {
5 resp, err := http.Get(u)
6 if err == nil {
7 ch <- resp
8 }
9 }(u)
10 }
11 return <-ch, nil
12}
Which questions mattered is sealed until you submit. Telling you now would just be handing over the edge cases.
Run or narrate your approach, then ask the coach.