• Brad Fitzpatrick's avatar
    net: coalesce duplicate in-flight DNS lookups · 61d3b2db
    Brad Fitzpatrick authored
    In Issue 5625, Russ says: "We should at least have a cache of
    inflight lookups, so that 100 simultaneous dials of one host
    name don't do the work 100x. That's easy and (assume we forget
    the answer once they all get it) doesn't pose any consistency
    problems. It just merges simultaneous work."
    
    This brings in singleflight (unexported) from Google /
    Camlistore, but without its tests. Maybe we should put it
    somewhere in the standard library. But not now.
    
    Update #5625
    
    R=golang-dev, iant, cespare, rsc, dave, rogpeppe, remyoudompheng
    CC=golang-dev
    https://golang.org/cl/10079043
    61d3b2db
Name
Last commit
Last update
..
http Loading commit data...
mail Loading commit data...
rpc Loading commit data...
smtp Loading commit data...
testdata Loading commit data...
textproto Loading commit data...
url Loading commit data...
cgo_bsd.go Loading commit data...
cgo_linux.go Loading commit data...
cgo_netbsd.go Loading commit data...
cgo_openbsd.go Loading commit data...
cgo_stub.go Loading commit data...
cgo_unix.go Loading commit data...
conn_test.go Loading commit data...
dial.go Loading commit data...
dial_gen.go Loading commit data...
dial_gen_test.go Loading commit data...
dial_test.go Loading commit data...
dialgoogle_test.go Loading commit data...
dnsclient.go Loading commit data...
dnsclient_unix.go Loading commit data...
dnsconfig_unix.go Loading commit data...
dnsmsg.go Loading commit data...
dnsmsg_test.go Loading commit data...
dnsname_test.go Loading commit data...
empty.c Loading commit data...
example_test.go Loading commit data...
fd_bsd.go Loading commit data...
fd_plan9.go Loading commit data...
fd_poll_runtime.go Loading commit data...
fd_poll_unix.go Loading commit data...
fd_posix_test.go Loading commit data...
fd_unix.go Loading commit data...
fd_unix_test.go Loading commit data...
fd_windows.go Loading commit data...
file_plan9.go Loading commit data...
file_test.go Loading commit data...
file_unix.go Loading commit data...
file_windows.go Loading commit data...
hosts.go Loading commit data...
hosts_test.go Loading commit data...
interface.go Loading commit data...
interface_bsd.go Loading commit data...
interface_bsd_test.go Loading commit data...
interface_darwin.go Loading commit data...
interface_freebsd.go Loading commit data...
interface_linux.go Loading commit data...
interface_linux_test.go Loading commit data...
interface_netbsd.go Loading commit data...
interface_openbsd.go Loading commit data...
interface_stub.go Loading commit data...
interface_test.go Loading commit data...
interface_unix_test.go Loading commit data...
interface_windows.go Loading commit data...
ip.go Loading commit data...
ip_test.go Loading commit data...
ipraw_test.go Loading commit data...
iprawsock.go Loading commit data...
iprawsock_plan9.go Loading commit data...
iprawsock_posix.go Loading commit data...
ipsock.go Loading commit data...
ipsock_plan9.go Loading commit data...
ipsock_posix.go Loading commit data...
lookup.go Loading commit data...
lookup_plan9.go Loading commit data...
lookup_test.go Loading commit data...
lookup_unix.go Loading commit data...
lookup_windows.go Loading commit data...
mac.go Loading commit data...
mac_test.go Loading commit data...
multicast_test.go Loading commit data...
net.go Loading commit data...
net_test.go Loading commit data...
packetconn_test.go Loading commit data...
parse.go Loading commit data...
parse_test.go Loading commit data...
pipe.go Loading commit data...
pipe_test.go Loading commit data...
port.go Loading commit data...
port_test.go Loading commit data...
port_unix.go Loading commit data...
protoconn_test.go Loading commit data...
sendfile_freebsd.go Loading commit data...
sendfile_linux.go Loading commit data...
sendfile_stub.go Loading commit data...
sendfile_windows.go Loading commit data...
server_test.go Loading commit data...
singleflight.go Loading commit data...
sock_bsd.go Loading commit data...
sock_cloexec.go Loading commit data...
sock_linux.go Loading commit data...
sock_posix.go Loading commit data...
sock_unix.go Loading commit data...
sock_windows.go Loading commit data...
sockopt_bsd.go Loading commit data...
sockopt_linux.go Loading commit data...
sockopt_posix.go Loading commit data...
sockopt_windows.go Loading commit data...
sockoptip_bsd.go Loading commit data...
sockoptip_linux.go Loading commit data...
sockoptip_posix.go Loading commit data...
sockoptip_windows.go Loading commit data...
sys_cloexec.go Loading commit data...
tcp_test.go Loading commit data...
tcpsock.go Loading commit data...
tcpsock_plan9.go Loading commit data...
tcpsock_posix.go Loading commit data...
timeout_test.go Loading commit data...
udp_test.go Loading commit data...
udpsock.go Loading commit data...
udpsock_plan9.go Loading commit data...
udpsock_posix.go Loading commit data...
unicast_posix_test.go Loading commit data...
unix_test.go Loading commit data...
unixsock.go Loading commit data...
unixsock_plan9.go Loading commit data...
unixsock_posix.go Loading commit data...