• Brad Fitzpatrick's avatar
    net/http: fix TimeoutHandler data races; hold lock longer · e38fa916
    Brad Fitzpatrick authored
    The existing lock needed to be held longer. If a timeout occured
    while writing (but after the guarded timeout check), the writes
    would clobber a future connection's buffer.
    
    Also remove a harmless warning by making Write also set the
    flag that headers were sent (implicitly), so we don't try to
    write headers later (a no-op + warning) on timeout after we've
    started writing.
    
    Fixes #8414
    Fixes #8209
    
    LGTM=ruiu, adg
    R=adg, ruiu
    CC=golang-codereviews
    https://golang.org/cl/123610043
    e38fa916
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...
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...
header.go Loading commit data...
header_test.go Loading commit data...
jar.go Loading commit data...
lex.go Loading commit data...
lex_test.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...
z_last_test.go Loading commit data...