golang usando tempos limite com canais

Estou usando goroutines / canais para verificar se a lista de URLs está acessível. Aqui está o meu código. Isso parece sempre retornar verdadeiro. Por que o caso de tempo limite não está sendo executado? O objetivo é retornar falso, mesmo que um dos URLs não esteja acessível

import "fmt"
import "time"

func check(u string) bool {
    time.Sleep(4 * time.Second)
    return true
}

func IsReachable(urls []string) bool {

    ch := make(chan bool, 1)
    for _, url := range urls {
        go func(u string) {
            select {
            case ch <- check(u):
            case <-time.After(time.Second):
                ch<-false
            }
        }(url)
    }
    return <-ch
}
func main() {
    fmt.Println(IsReachable([]string{"url1"}))
}

questionAnswers(3)

yourAnswerToTheQuestion