• Tom Bergan's avatar
    http2: fix leak in activeRes by removing activeRes · e6a4aa30
    Tom Bergan authored
    AFAICT, activeRes serves no real purpose. It is used in just two ways:
    
    - To reduce the number of calls to closeIfIdle, which reduces the number
      of acquires of cc.mu when there are many concurrent streams. I dug
      through the CL history and could not find any benchmarks showing that
      this is necessary.
    
    - To avoid redundant calls to cs.bufPipe.CloseWithError(err) when a read
      loop is shutdown. This is unnecessary, since redundant CloseWithError
      calls are ignored.
    
    Since there isn't a good reason to have activeRes, the simplest way to
    fix the leak is to remove activeRes entirely.
    
    Updates golang/go#21543
    
    Change-Id: I1d1d2dc6c946425a2772c8bf71436707021ac269
    Reviewed-on: https://go-review.googlesource.com/80137Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
    Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    e6a4aa30
Name
Last commit
Last update
..
h2demo Loading commit data...
h2i Loading commit data...
hpack Loading commit data...
testdata Loading commit data...
.gitignore Loading commit data...
Dockerfile Loading commit data...
Makefile Loading commit data...
README Loading commit data...
ciphers.go Loading commit data...
ciphers_test.go Loading commit data...
client_conn_pool.go Loading commit data...
configure_transport.go Loading commit data...
databuffer.go Loading commit data...
databuffer_test.go Loading commit data...
errors.go Loading commit data...
errors_test.go Loading commit data...
flow.go Loading commit data...
flow_test.go Loading commit data...
frame.go Loading commit data...
frame_test.go Loading commit data...
go16.go Loading commit data...
go17.go Loading commit data...
go17_not18.go Loading commit data...
go18.go Loading commit data...
go18_test.go Loading commit data...
go19.go Loading commit data...
go19_test.go Loading commit data...
gotrack.go Loading commit data...
gotrack_test.go Loading commit data...
headermap.go Loading commit data...
http2.go Loading commit data...
http2_test.go Loading commit data...
not_go16.go Loading commit data...
not_go17.go Loading commit data...
not_go18.go Loading commit data...
not_go19.go Loading commit data...
pipe.go Loading commit data...
pipe_test.go Loading commit data...
server.go Loading commit data...
server_push_test.go Loading commit data...
server_test.go Loading commit data...
transport.go Loading commit data...
transport_test.go Loading commit data...
write.go Loading commit data...
writesched.go Loading commit data...
writesched_priority.go Loading commit data...
writesched_priority_test.go Loading commit data...
writesched_random.go Loading commit data...
writesched_random_test.go Loading commit data...
writesched_test.go Loading commit data...
z_spec_test.go Loading commit data...