func timeout(t time.Duration) {
temp := make(chan int)
go func() {
time.Sleep(5 * time.Second)
defer close(temp)
}()
select {
case <-temp:
result <- false
case <-time.After(t):
result <- true
}
Golang для профи: Создаем профессиональные утилиты, параллельные серверы и сервисы
·
Михалис Цукалос