commit | c29d6389e66f5da1a226df88607857aab4db9f7a | [log] [tgz] |
---|---|---|
author | Benoit Sigoure <tsunanet@gmail.com> | Fri Aug 25 19:18:52 2017 +0100 |
committer | mmukhi <mmukhi@google.com> | Fri Aug 25 11:18:52 2017 -0700 |
tree | 0e11986a7f6a72eb48a1361cf86f59bccdb95bc8 | |
parent | 7db1564ba1229bc42919bb1f6d9c4186f3aa8678 [diff] |
transport: Fix deadlock in client keepalive. (#1460) When gRPC keepalives are enabled (which isn't the case by default at this time) and PermitWithoutStream is false (the default), the client can deadlock when transitioning between having no active stream and having one active stream. Subsequent attempts to create a new stream or to close the client will hang on the transport's mutex, while the keepalive goroutine is waiting indefinitely on a channel while holding the transport's mutex. This fixes #1459.
The Go implementation of gRPC: A high performance, open source, general RPC framework that puts mobile and HTTP/2 first. For more information see the gRPC Quick Start: Go guide.
To install this package, you need to install Go and setup your Go workspace on your computer. The simplest way to install the library is to run:
$ go get -u google.golang.org/grpc
This requires Go 1.6 or later.
The grpc package should only depend on standard Go packages and a small number of exceptions. If your contribution introduces new dependencies which are NOT in the list, you need a discussion with gRPC-Go authors and consultants.
See API documentation for package and API descriptions and find examples in the examples directory.
See the current benchmarks for some of the languages supported in this dashboard.
General Availability Google Cloud Platform Launch Stages.
Please update proto package, gRPC package and rebuild the proto files:
go get -u github.com/golang/protobuf/{proto,protoc-gen-go}
go get -u google.golang.org/grpc
protoc --go_out=plugins=grpc:. *.proto