From 005806cab17a20adaec33a1ee02a19355356fa67 Mon Sep 17 00:00:00 2001 From: Keith Randall Date: Fri, 5 Sep 2014 14:59:31 -0700 Subject: runtime: run getgcmask on the M stack. LGTM=rsc R=rsc, khr CC=golang-codereviews https://golang.org/cl/132660043 --- src/pkg/runtime/export_test.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'src/pkg/runtime/export_test.go') 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() -- cgit v1.3-5-g9baa