github.com/bir3/gocompiler@v0.9.2202/src/cmd/gocmd/internal/cfg/lookpath.go (about) 1 // Copyright 2023 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package cfg 6 7 import ( 8 "github.com/bir3/gocompiler/src/cmd/gocmd/internal/par" 9 "github.com/bir3/gocompiler/exec" 10 ) 11 12 var lookPathCache par.ErrCache[string, string] 13 14 // LookPath wraps exec.LookPath and caches the result 15 // which can be called by multiple Goroutines at the same time. 16 func LookPath(file string) (path string, err error) { 17 return lookPathCache.Do(file, 18 func() (string, error) { 19 return exec.LookPath(file) 20 }) 21 }