]> Cypherpunks repositories - gostls13.git/commit
syscall: Plan 9: use lightweight errstr in entersyscall mode
authorAkshat Kumar <seed@mail.nanosouffle.net>
Thu, 7 Mar 2013 23:54:44 +0000 (00:54 +0100)
committerRon Minnich <rminnich@gmail.com>
Thu, 7 Mar 2013 23:54:44 +0000 (00:54 +0100)
commita566deace1d96cd517e79227937e3036baca7ee2
treea5973da40ca4bfcafd0f98a0284ac8c02d740270
parent2ac799cfbcf212675d64ea0df835ca6c2e2aa368
syscall: Plan 9: use lightweight errstr in entersyscall mode

Change 231af8ac63aa (CL 7314062) made runtime.enteryscall()
set m->mcache = nil, which means that we can no longer use
syscall.errstr in syscall.Syscall and syscall.Syscall6, since it
requires a new buffer to be allocated for holding the error string.
Instead, we use pre-allocated per-M storage to hold error strings
from syscalls made while in entersyscall mode, and call
runtime.findnull to calculate the lengths.

Fixes #4994.

R=rsc, rminnich, ality, dvyukov, rminnich, r
CC=golang-dev
https://golang.org/cl/7567043
src/pkg/runtime/runtime.h
src/pkg/runtime/sys_plan9_386.s
src/pkg/runtime/sys_plan9_amd64.s
src/pkg/runtime/thread_plan9.c
src/pkg/syscall/asm_plan9_386.s
src/pkg/syscall/asm_plan9_amd64.s