mirror of
https://github.com/golang/net.git
synced 2026-04-01 02:47:08 +09:00
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: Brad Fitzpatrick <bradfitz@golang.org>
32 lines
830 B
Go
32 lines
830 B
Go
// Copyright 2014 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package context_test
|
|
|
|
import (
|
|
"fmt"
|
|
"time"
|
|
|
|
"golang.org/x/net/context"
|
|
)
|
|
|
|
// 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(), 50*time.Millisecond)
|
|
defer cancel()
|
|
|
|
select {
|
|
case <-time.After(1 * time.Second):
|
|
fmt.Println("overslept")
|
|
case <-ctx.Done():
|
|
fmt.Println(ctx.Err()) // prints "context deadline exceeded"
|
|
}
|
|
|
|
// Output:
|
|
// context deadline exceeded
|
|
}
|