Commit c81e7f25 authored by Brad Fitzpatrick's avatar Brad Fitzpatrick

context: deflake example

Got a trybot failure in
https://storage.googleapis.com/go-build-log/8aee0b8b/linux-amd64_38d0be3e.log

Change-Id: I867a658968a0088c9f3f76ff235816e4179f0bec
Reviewed-on: https://go-review.googlesource.com/47095Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
parent d4223d67
...@@ -11,12 +11,15 @@ import ( ...@@ -11,12 +11,15 @@ import (
"golang.org/x/net/context" "golang.org/x/net/context"
) )
var workComplete <-chan int
func ExampleWithTimeout() { func ExampleWithTimeout() {
// Pass a context with a timeout to tell a blocking function that it // Pass a context with a timeout to tell a blocking function that it
// should abandon its work after the timeout elapses. // should abandon its work after the timeout elapses.
ctx, _ := context.WithTimeout(context.Background(), 100*time.Millisecond) ctx, cancel := context.WithTimeout(context.Background(), 100*time.Millisecond)
select { select {
case <-time.After(200 * time.Millisecond): case <-workComplete:
cancel()
fmt.Println("overslept") fmt.Println("overslept")
case <-ctx.Done(): case <-ctx.Done():
fmt.Println(ctx.Err()) // prints "context deadline exceeded" fmt.Println(ctx.Err()) // prints "context deadline exceeded"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment