• Brad Fitzpatrick's avatar
    net/http: remove idle transport connections from Transport when server closes · 2e302182
    Brad Fitzpatrick authored
    Previously the Transport would cache idle connections from the
    Transport for later reuse, but if a peer server disconnected
    (e.g. idle timeout), we would not proactively remove the *persistConn
    from the Transport's idle list, leading to a waste of memory
    (potentially forever).
    
    Instead, when the persistConn's readLoop terminates, remote it from
    the idle list, if present.
    
    This also adds the beginning of accounting for the total number of
    idle connections, which will be needed for Transport.MaxIdleConns
    later.
    
    Updates #15461
    
    Change-Id: Iab091f180f8dd1ee0d78f34b9705d68743b5557b
    Reviewed-on: https://go-review.googlesource.com/22492Reviewed-by: 's avatarAndrew Gerrand <adg@golang.org>
    2e302182
Name
Last commit
Last update
..
cgi Loading commit data...
cookiejar Loading commit data...
fcgi Loading commit data...
httptest Loading commit data...
httputil Loading commit data...
internal Loading commit data...
pprof Loading commit data...
testdata Loading commit data...
client.go Loading commit data...
client_test.go Loading commit data...
clientserver_test.go Loading commit data...
cookie.go Loading commit data...
cookie_test.go Loading commit data...
doc.go Loading commit data...
example_test.go Loading commit data...
export_test.go Loading commit data...
filetransport.go Loading commit data...
filetransport_test.go Loading commit data...
fs.go Loading commit data...
fs_test.go Loading commit data...
h2_bundle.go Loading commit data...
header.go Loading commit data...
header_test.go Loading commit data...
http.go Loading commit data...
http_test.go Loading commit data...
jar.go Loading commit data...
lex.go Loading commit data...
lex_test.go Loading commit data...
main_test.go Loading commit data...
method.go Loading commit data...
npn_test.go Loading commit data...
proxy_test.go Loading commit data...
race.go Loading commit data...
range_test.go Loading commit data...
readrequest_test.go Loading commit data...
request.go Loading commit data...
request_test.go Loading commit data...
requestwrite_test.go Loading commit data...
response.go Loading commit data...
response_test.go Loading commit data...
responsewrite_test.go Loading commit data...
serve_test.go Loading commit data...
server.go Loading commit data...
sniff.go Loading commit data...
sniff_test.go Loading commit data...
status.go Loading commit data...
transfer.go Loading commit data...
transfer_test.go Loading commit data...
transport.go Loading commit data...
transport_test.go Loading commit data...
triv.go Loading commit data...