]> Cypherpunks repositories - gostls13.git/commit
runtime: do not split stacks in syscall status
authorDmitriy Vyukov <dvyukov@google.com>
Mon, 29 Jul 2013 18:22:34 +0000 (22:22 +0400)
committerDmitriy Vyukov <dvyukov@google.com>
Mon, 29 Jul 2013 18:22:34 +0000 (22:22 +0400)
commite84d9e1fb3a0d87abd60d31afb9cd0ddfb7d9bfa
tree1a0213f1250994c0734456bdcd81bb1bf5e56ee4
parentb8734748b6b151a7fd724fc41e2555e6cd34385f
runtime: do not split stacks in syscall status
Split stack checks (morestack) corrupt g->sched,
but g->sched must be preserved consistent for GC/traceback.
The change implements runtime.notetsleepg function,
which does entersyscall/exitsyscall and is carefully arranged
to not call any split functions in between.

R=rsc
CC=golang-dev
https://golang.org/cl/11575044
17 files changed:
misc/cgo/test/callback.go
src/pkg/runtime/asm_amd64.s
src/pkg/runtime/cgocall.c
src/pkg/runtime/futex_test.go
src/pkg/runtime/lock_futex.c
src/pkg/runtime/lock_sema.c
src/pkg/runtime/os_darwin.c
src/pkg/runtime/os_freebsd.c
src/pkg/runtime/os_linux.c
src/pkg/runtime/os_netbsd.c
src/pkg/runtime/os_openbsd.c
src/pkg/runtime/os_plan9.c
src/pkg/runtime/os_windows.c
src/pkg/runtime/proc.c
src/pkg/runtime/runtime.c
src/pkg/runtime/runtime.h
src/pkg/runtime/stack.c