| // 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{}{} |
| } |