These syscalls may block if there is a FUSE file system involved, causing them to camp on GOMAXPROCS credit. See this thread for details and discussion.
The text was updated successfully, but these errors were encountered:
This avoids hanging when a Go program uses a FUSE filesystem and the
dup system call has to close a file descriptor. When dup uses
RawSyscall then the goroutine calling dup will occupy a scheduler slot
(a p structure) during the call, and may block waiting for some other
goroutine to respond to the close call on the FUSE filesystem.
Changing to Syscall avoids the problem. This makes Dup a tiny bit
slower but is quite unlikely to make a difference for any real
programs.
Update golang/go#10202.
Change-Id: I590c5c9a04e0a1281a85dc553c7592fa83949ac7
Reviewed-on: https://go-review.googlesource.com/8056
Reviewed-by: Rob Pike <r@golang.org>
These syscalls may block if there is a FUSE file system involved, causing them to camp on GOMAXPROCS credit. See this thread for details and discussion.
The text was updated successfully, but these errors were encountered: