diff --git a/src/net/lookup_unix.go b/src/net/lookup_unix.go index 382a2d44bb5cfdbc58a53b121875b98e7c7f28e7..7416cb01f80efe7aa161b7164412ec7e85e2201e 100644 --- a/src/net/lookup_unix.go +++ b/src/net/lookup_unix.go @@ -12,11 +12,9 @@ import ( "sync" ) -var onceReadProtocols sync.Once - -// readProtocols loads contents of /etc/protocols into protocols map +// readProtocolsOnce loads contents of /etc/protocols into protocols map // for quick access. -func readProtocols() { +var readProtocolsOnce = sync.OnceFunc(func() { file, err := open("/etc/protocols") if err != nil { return @@ -43,12 +41,12 @@ func readProtocols() { } } } -} +}) // lookupProtocol looks up IP protocol name in /etc/protocols and // returns correspondent protocol number. func lookupProtocol(_ context.Context, name string) (int, error) { - onceReadProtocols.Do(readProtocols) + readProtocolsOnce() return lookupProtocolMap(name) }