diff options
Diffstat (limited to 'doc/progs/timeout1.go')
-rw-r--r-- | doc/progs/timeout1.go | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/doc/progs/timeout1.go b/doc/progs/timeout1.go new file mode 100644 index 000000000..5221770ec --- /dev/null +++ b/doc/progs/timeout1.go @@ -0,0 +1,28 @@ +// 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(1 * time.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 +} |