Open MikeSpreitzer opened 3 years ago
go version
$ go version go version go1.16.7 darwin/amd64
Yes.
go env
$ go env GO111MODULE="" GOARCH="amd64" GOBIN="" GOCACHE="/Users/mspreitz/Library/Caches/go-build" GOENV="/Users/mspreitz/Library/Application Support/go/env" GOEXE="" GOFLAGS="" GOHOSTARCH="amd64" GOHOSTOS="darwin" GOINSECURE="" GOMODCACHE="/Users/mspreitz/go/pkg/mod" GONOPROXY="" GONOSUMDB="" GOOS="darwin" GOPATH="/Users/mspreitz/go" GOPRIVATE="" GOPROXY="https://proxy.golang.org,direct" GOROOT="/usr/local/go" GOSUMDB="sum.golang.org" GOTMPDIR="" GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64" GOVCS="" GOVERSION="go1.16.7" GCCGO="gccgo" AR="ar" CC="clang" CXX="clang++" CGO_ENABLED="1" GOMOD="/dev/null" CGO_CFLAGS="-g -O2" CGO_CPPFLAGS="" CGO_CXXFLAGS="-g -O2" CGO_FFLAGS="-g -O2" CGO_LDFLAGS="-g -O2" PKG_CONFIG="pkg-config" GOGCCFLAGS="-fPIC -arch x86_64 -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/vs/qkb72z0s57s_yr0ttjfzh8h40000gn/T/go-build213368521=/tmp/go-build -gno-record-gcc-switches -fno-common"
I wanted to use x/time/rate.Limiter with client-supplied time behavior. I discovered that this is possible with all the FooN methods except WaitN.
I expected a variety of Wait that lets the client supply clock behavior (both the reading of time and waiting for the advance of time).
The implementation of WaitN uses the real clock to read Now() and create and use a Timer.
Now()
cc @bradfitz @Sajmani
What version of Go are you using (
go version
)?Does this issue reproduce with the latest release?
Yes.
What operating system and processor architecture are you using (
go env
)?go env
OutputWhat did you do?
I wanted to use x/time/rate.Limiter with client-supplied time behavior. I discovered that this is possible with all the FooN methods except WaitN.
What did you expect to see?
I expected a variety of Wait that lets the client supply clock behavior (both the reading of time and waiting for the advance of time).
What did you see instead?
The implementation of WaitN uses the real clock to read
Now()
and create and use a Timer.