aboutsummaryrefslogtreecommitdiff
path: root/src/pkg/runtime/export_test.go
diff options
context:
space:
mode:
authorKeith Randall <khr@golang.org>2014-09-05 14:59:31 -0700
committerKeith Randall <khr@golang.org>2014-09-05 14:59:31 -0700
commit005806cab17a20adaec33a1ee02a19355356fa67 (patch)
tree4014435f7f4d23618b0aefdf1874d04c9a767011 /src/pkg/runtime/export_test.go
parent277ef8fa07411231761426298c8e489ddef8ef67 (diff)
downloadgo-005806cab17a20adaec33a1ee02a19355356fa67.tar.xz
runtime: run getgcmask on the M stack.
LGTM=rsc R=rsc, khr CC=golang-codereviews https://golang.org/cl/132660043
Diffstat (limited to 'src/pkg/runtime/export_test.go')
-rw-r--r--src/pkg/runtime/export_test.go13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/pkg/runtime/export_test.go b/src/pkg/runtime/export_test.go
index 35a4130ee1..fd7fd182fc 100644
--- a/src/pkg/runtime/export_test.go
+++ b/src/pkg/runtime/export_test.go
@@ -111,8 +111,19 @@ func ParForIters(desc *ParFor, tid uint32) (uint32, uint32) {
return begin, end
}
+// in mgc0.c
//go:noescape
-func GCMask(x interface{}) []byte
+func getgcmask(data unsafe.Pointer, typ *_type, array **byte, len *uint)
+
+func GCMask(x interface{}) (ret []byte) {
+ e := (*eface)(unsafe.Pointer(&x))
+ s := (*slice)(unsafe.Pointer(&ret))
+ onM(func() {
+ getgcmask(e.data, e._type, &s.array, &s.len)
+ s.cap = s.len
+ })
+ return
+}
func testSchedLocalQueue()
func testSchedLocalQueueSteal()