| // run | |
| // Copyright 2018 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 ( | |
| "bytes" | |
| "strings" | |
| ) | |
| func growstack(n int) { | |
| if n > 0 { | |
| growstack(n - 1) | |
| } | |
| } | |
| func main() { | |
| c := make(chan struct{}) | |
| go compare(c) | |
| go equal(c) | |
| go indexByte(c) | |
| go indexByteString(c) | |
| <-c | |
| <-c | |
| <-c | |
| <-c | |
| } | |
| func compare(c chan struct{}) { | |
| defer bytes.Compare(nil, nil) | |
| growstack(10000) | |
| c <- struct{}{} | |
| } | |
| func equal(c chan struct{}) { | |
| defer bytes.Equal(nil, nil) | |
| growstack(10000) | |
| c <- struct{}{} | |
| } | |
| func indexByte(c chan struct{}) { | |
| defer bytes.IndexByte(nil, 0) | |
| growstack(10000) | |
| c <- struct{}{} | |
| } | |
| func indexByteString(c chan struct{}) { | |
| defer strings.IndexByte("", 0) | |
| growstack(10000) | |
| c <- struct{}{} | |
| } |