// run // Copyright 2016 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 "time" type T struct{} func (*T) Foo(vals []interface{}) { switch v := vals[0].(type) { case string: _ = v } } type R struct{ *T } type Q interface { Foo([]interface{}) } func main() { var q Q = &R{&T{}} for i := 0; i < 10000; i++ { go func() { defer q.Foo([]interface{}{"meow"}) time.Sleep(100 * time.Millisecond) }() } time.Sleep(1 * time.Second) }