...
Run Format

Source file test/fixedbugs/issue13169.go

Documentation: test/fixedbugs

  // run
  
  // Copyright 2015 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
  
  type T struct {
  	a, b, c int
  }
  
  func usestack() {
  	usestack1(32)
  }
  func usestack1(d int) byte {
  	if d == 0 {
  		return 0
  	}
  	var b [1024]byte
  	usestack1(d - 1)
  	return b[3]
  }
  
  const n = 100000
  
  func main() {
  	c := make(chan interface{})
  	done := make(chan bool)
  
  	for i := 0; i < 10; i++ {
  		go func() {
  			for j := 0; j < n; j++ {
  				c <- new(T)
  			}
  			done <- true
  		}()
  		go func() {
  			for j := 0; j < n; j++ {
  				_ = (<-c).(*T)
  				usestack()
  			}
  			done <- true
  		}()
  	}
  	for i := 0; i < 20; i++ {
  		<-done
  	}
  }
  

View as plain text