| // 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 | |
| } |