cwbak
4/13/2019 - 6:38 AM

For loop that breaks after n amount of seconds

for start := time.Now(); time.Since(start) < time.Second; {
    foo();
}
loop:
    for timeout := time.After(time.Second); ; {
        select {
        case <-timeout:
            fmt.Println("x")
            break loop
        default:
        }
        foo();
    }
for stay, timeout := true, time.After(time.Second); stay; {
    foo()
    select {
    case <-timeout:
        stay = false
    default:
	}
}