blob: fba52916ebe350e1157aa80440412dab10ca3f28 [file] [log] [blame]
Keith Randall3dec2532020-06-18 12:51:35 -07001// run
2
3// Copyright 2020 The Go Authors. All rights reserved.
4// Use of this source code is governed by a BSD-style
5// license that can be found in the LICENSE file.
6
7package main
8
9import "reflect"
10
11func sub(args []reflect.Value) []reflect.Value {
12 type A struct {
13 s int
14 t int
15 }
16 return []reflect.Value{reflect.ValueOf(A{1, 2})}
17}
18
19func main() {
20 f := reflect.MakeFunc(reflect.TypeOf((func() interface{})(nil)), sub).Interface().(func() interface{})
21 c := make(chan bool, 100)
22 for i := 0; i < 100; i++ {
23 go func() {
24 for j := 0; j < 10000; j++ {
25 f()
26 }
27 c <- true
28 }()
29 }
30 for i := 0; i < 100; i++ {
31 <-c
32 }
33}