Code RoomGoroutine sends on closed channel
HardPrep Room Coding #1854

Goroutine sends on closed channel

Code reviewCode quality & reviewMid–Senior~35 min

Review this Go fan-out helper that returns the first successful result.

What goes wrong here?

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 35 min
Mark a line and say what kind of problem it is.0 findings
1func fastest(ctx context.Context, urls []string) (string, error) {
2 results := make(chan string) // unbuffered
3 for _, u := range urls {
4 go func(u string) {
5 body, err := fetch(ctx, u)
6 if err == nil {
7 results <- body // (1)
8 }
9 }(u)
10 }
11 select {
12 case r := <-results:
13 return r, nil
14 case <-ctx.Done():
15 return "", ctx.Err()
16 }
17}
Which questions mattered is sealed until you submit. Telling you now would just be handing over the edge cases.