aboutsummaryrefslogtreecommitdiff
path: root/libgo
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@gcc.gnu.org>2015-07-13 18:55:15 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2015-07-13 18:55:15 +0000
commit51cef06e02c9dce897921c208cc6951e85a93398 (patch)
tree5b9b2a3cd5fb4ea0ea16eec9cfc9a66a9f1cbbee /libgo
parentc5d9ec56700313088f24d486fa1b08849cc52bac (diff)
downloadgcc-51cef06e02c9dce897921c208cc6951e85a93398.zip
gcc-51cef06e02c9dce897921c208cc6951e85a93398.tar.gz
gcc-51cef06e02c9dce897921c208cc6951e85a93398.tar.bz2
syscall: remove calls to Entersyscall & Exitsyscall in Getdents
The syscall for Getdents in syscall/libcall_linux.go called Entersyscall and Exitsyscall, causing the runtime_sched counts for goroutines to be incorrect. Inconsistent counts caused checkdead in runtime/proc.c to panic. Fixes golang/go#11406 Reviewed-on: https://go-review.googlesource.com/11761 From-SVN: r225745
Diffstat (limited to 'libgo')
-rw-r--r--libgo/go/syscall/libcall_linux.go2
1 files changed, 0 insertions, 2 deletions
diff --git a/libgo/go/syscall/libcall_linux.go b/libgo/go/syscall/libcall_linux.go
index d5bedd0..93137fc 100644
--- a/libgo/go/syscall/libcall_linux.go
+++ b/libgo/go/syscall/libcall_linux.go
@@ -223,7 +223,6 @@ func Getdents(fd int, buf []byte) (n int, err error) {
} else {
p = (*byte)(unsafe.Pointer(&_zero))
}
- Entersyscall()
s := SYS_GETDENTS64
if s == 0 {
s = SYS_GETDENTS
@@ -233,7 +232,6 @@ func Getdents(fd int, buf []byte) (n int, err error) {
if n < 0 {
err = errno
}
- Exitsyscall()
return
}