mirror of
https://github.com/golang/go
synced 2024-11-12 01:10:21 -07:00
5659826e43
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
28 lines
514 B
Go
28 lines
514 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 query
|
|
|
|
type Conn string
|
|
|
|
func (c Conn) DoQuery(query string) Result {
|
|
return Result("result")
|
|
}
|
|
|
|
type Result string
|
|
|
|
func Query(conns []Conn, query string) Result {
|
|
ch := make(chan Result, 1)
|
|
for _, conn := range conns {
|
|
go func(c Conn) {
|
|
select {
|
|
case ch <- c.DoQuery(query):
|
|
default:
|
|
}
|
|
}(conn)
|
|
}
|
|
return <-ch
|
|
}
|
|
|
|
// STOP OMIT
|