mirror of
https://github.com/golang/go
synced 2024-11-18 23:05:06 -07:00
os: use the syscall version of Getwd for Plan 9
In Plan 9, each OS thread has its own independent working directory, so the Go runtime for Plan 9 needs to coordinate Chdir and Getwd operations to keep the working directory consistent for all goroutines. The function os.Getwd in Plan 9 should always call syscall.Getwd to retrieve the common working directory. Failure to do this was the cause of (at least some of) the intermittent failures in the Plan 9 builders with a seemingly spurious "file does not exist" message, when a thread's working directory had been removed in another thread. Change-Id: Ifb834ad025ee39578234ad3b04d08bc98e939291 Reviewed-on: https://go-review.googlesource.com/89575 Reviewed-by: David du Colombier <0intro@gmail.com> Run-TryBot: David du Colombier <0intro@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
parent
8d88c9ae07
commit
e72e69a3f6
@ -24,7 +24,7 @@ var useSyscallwd = func(error) bool { return true }
|
||||
// reached via multiple paths (due to symbolic links),
|
||||
// Getwd may return any one of them.
|
||||
func Getwd() (dir string, err error) {
|
||||
if runtime.GOOS == "windows" {
|
||||
if runtime.GOOS == "windows" || runtime.GOOS == "plan9" {
|
||||
return syscall.Getwd()
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user