package main
import (
"fmt"
"time"
)
func TimeoutRead() (err error) {
defer fmt.Println("go exit1")
ch := make(chan bool)
go func() {
defer fmt.Println("go exit2")
// тут что то долго читаем
time.Sleep(11 * time.Second)
ch <- true
}()
// тут ждем на время чтения
select {
case <-ch:
return
case <-time.After(4 * time.Second):
return
}
return
}
func main() {
TimeoutRead()
select {
case <-time.After(6 * time.Second):
fmt.Println("Hello2")
}
}--
Вы получили это сообщение, поскольку подписаны на группу "Golang Russian".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес golang-ru+unsubscribe@googlegroups.com.
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.
--
Вы получили это сообщение, поскольку подписаны на группу Golang Russian.
Настройки подписки и доставки писем: https://groups.google.com/d/optout.Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес golang-ru+unsubscribe@googlegroups.com.
> хм. Но если учесть что горутина висит на io.ReadFull (ждет данные) к
> примеру, как мне ваша переменная поможет?
очевидно, тут вам ничто не поможет
> Вы ведь только читаете из горутины в цикле.
если в эту переменную не писать - от нее пользы не будет :)
--
Вы получили это сообщение, поскольку подписаны на группу Golang Russian.
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес golang-ru+...@googlegroups.com.