From c81e7f25cb61200d8bf0ae971a0bac8cb638d5bc Mon Sep 17 00:00:00 2001 From: Brad Fitzpatrick Date: Wed, 28 Jun 2017 23:42:41 +0000 Subject: [PATCH] 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/47095 Reviewed-by: Ian Lance Taylor Run-TryBot: Brad Fitzpatrick --- context/withtimeout_test.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/context/withtimeout_test.go b/context/withtimeout_test.go index a6754dc3..7cddc5f1 100644 --- a/context/withtimeout_test.go +++ b/context/withtimeout_test.go @@ -11,12 +11,15 @@ import ( "golang.org/x/net/context" ) +var workComplete <-chan int + func ExampleWithTimeout() { // Pass a context with a timeout to tell a blocking function that it // 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 { - case <-time.After(200 * time.Millisecond): + case <-workComplete: + cancel() fmt.Println("overslept") case <-ctx.Done(): fmt.Println(ctx.Err()) // prints "context deadline exceeded"