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
diff --git a/doc/progs/timeout1.go b/doc/progs/timeout1.go
new file mode 100644
index 0000000..a6c9562
--- /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(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
+}