blob: e55240509f1bb0f40525ec74bd58f50fa55c5d59 [file] [log] [blame]
package main
import (
"net/http"
"text/template"
"time"
)
type Result struct{}
func WebSearch(q string) *Result { return nil }
func ImageSearch(q string) *Result { return nil }
var searchTemplate *template.Template
func searchHandler(w http.ResponseWriter, r *http.Request) {
var (
results []*Result
ch = make(chan *Result)
timeout = time.After(20 * time.Millisecond)
)
go func() { ch <- WebSearch(r) }()
go func() { ch <- ImageSearch(r) }()
loop:
for i := 0; i < 2; i++ {
select { // HL
case r := <-ch: // HL
results = append(results, r)
case <-timeout: // HL
break loop
}
}
searchTemplate.Execute(w, results)
}