mirror of https://github.com/golang/go.git
net/http: update bundled http2
Updates x/net/http2 to git rev 313cf39 for CLs 23812 and 23880: http2: GotFirstResponseByte hook should only fire once http2: fix data race on pipe Fixes #16000 Change-Id: I9c3f1b2528bbd99968aa5a0529ae9c5295979d1d Reviewed-on: https://go-review.googlesource.com/23881 Reviewed-by: Mikio Hara <mikioh.mikioh@gmail.com>
This commit is contained in:
parent
afad74ec30
commit
f605c77bbc
|
|
@ -2631,6 +2631,12 @@ type http2pipeBuffer interface {
|
|||
io.Reader
|
||||
}
|
||||
|
||||
func (p *http2pipe) Len() int {
|
||||
p.mu.Lock()
|
||||
defer p.mu.Unlock()
|
||||
return p.b.Len()
|
||||
}
|
||||
|
||||
// Read waits until data is available and copies bytes
|
||||
// from the buffer into p.
|
||||
func (p *http2pipe) Read(d []byte) (n int, err error) {
|
||||
|
|
@ -6152,8 +6158,10 @@ func (b http2transportResponseBody) Read(p []byte) (n int, err error) {
|
|||
cc.inflow.add(connAdd)
|
||||
}
|
||||
if err == nil {
|
||||
if v := cs.inflow.available(); v < http2transportDefaultStreamFlow-http2transportDefaultStreamMinRefresh {
|
||||
streamAdd = http2transportDefaultStreamFlow - v
|
||||
|
||||
v := int(cs.inflow.available()) + cs.bufPipe.Len()
|
||||
if v < http2transportDefaultStreamFlow-http2transportDefaultStreamMinRefresh {
|
||||
streamAdd = int32(http2transportDefaultStreamFlow - v)
|
||||
cs.inflow.add(streamAdd)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue