Commit 1f922427 authored by Dmitri Shuralyov's avatar Dmitri Shuralyov Committed by Brad Fitzpatrick

context: sync ExampleWithTimeout with std lib context

CL 47095 applied a change to ExampleWithTimeout to resolve test
flakiness. This change deviated ExampleWithTimeout further away
from the ExampleWithTimeout in standard library's context package.

There was a minor issue spotted in code review. Instead of attempting
to resolve it here, it's better to use the version of ExampleWithTimeout
from standard library that doesn't have the issue, and reduce
maintenance.

Change-Id: I3da9d7f7c35b33b52635df4c61058cb0b8ae95d9
Reviewed-on: https://go-review.googlesource.com/47212
Run-TryBot: Dmitri Shuralyov <shurcool@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
parent c81e7f25
......@@ -11,19 +11,21 @@ import (
"golang.org/x/net/context"
)
var workComplete <-chan int
// This example passes a context with a timeout to tell a blocking function that
// it should abandon its work after the timeout elapses.
func ExampleWithTimeout() {
// Pass a context with a timeout to tell a blocking function that it
// should abandon its work after the timeout elapses.
ctx, cancel := context.WithTimeout(context.Background(), 100*time.Millisecond)
ctx, cancel := context.WithTimeout(context.Background(), 50*time.Millisecond)
defer cancel()
select {
case <-workComplete:
cancel()
case <-time.After(1 * time.Second):
fmt.Println("overslept")
case <-ctx.Done():
fmt.Println(ctx.Err()) // prints "context deadline exceeded"
}
// Output:
// 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