// run // Copyright 2020 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package main import "reflect" func sub(args []reflect.Value) []reflect.Value { type A struct { s int t int } return []reflect.Value{reflect.ValueOf(A{1, 2})} } func main() { f := reflect.MakeFunc(reflect.TypeOf((func() interface{})(nil)), sub).Interface().(func() interface{}) c := make(chan bool, 100) for i := 0; i < 100; i++ { go func() { for j := 0; j < 10000; j++ { f() } c <- true }() } for i := 0; i < 100; i++ { <-c } }