1
0
mirror of https://github.com/golang/go synced 2024-11-22 20:04:47 -07:00
go/doc/progs/timeout1.go
Francisco Souza 5659826e43 doc: add Go Concurrency Patterns: Timing out, moving on article
Originally published on The Go Programming Language Blog, September 23, 2010.

http://blog.golang.org/2010/09/go-concurrency-patterns-timing-out-and.html

Update #2547.

R=golang-dev, adg
CC=golang-dev
https://golang.org/cl/5815044
2012-03-14 13:03:11 +11:00

29 lines
482 B
Go

// Copyright 2012 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package timeout
import (
"time"
)
func Timeout() {
ch := make(chan bool, 1)
timeout := make(chan bool, 1)
go func() {
time.Sleep(1e9) // one second
timeout <- true
}()
// STOP OMIT
select {
case <-ch:
// a read from ch has occurred
case <-timeout:
// the read from ch has timed out
}
// STOP OMIT
}