func (tw *twitterClient) twitterGet(url string, param web.ParamMap) (p []byte, err os.Error) { oauthClient.SignParam(tw.twitterToken, "GET", url, param) url = url + "?" + param.FormEncodedString() var resp *http.Response done := make(chan bool, 1) go func() { resp, _, err = http.Get(url) done <- true }() timeout := time.After(TWITTER_GET_TIMEOUT * 1e9) // select { case <-done: break case <-timeout: return nil, os.NewError("http Get timed out - " + url) } if resp == nil { panic("oops") } return readHttpResponse(resp, err) }