diff options
Diffstat (limited to 'test/gc2.go')
-rw-r--r-- | test/gc2.go | 41 |
1 files changed, 0 insertions, 41 deletions
diff --git a/test/gc2.go b/test/gc2.go deleted file mode 100644 index c5c6cbe4b..000000000 --- a/test/gc2.go +++ /dev/null @@ -1,41 +0,0 @@ -// $G $D/$F.go && $L $F.$A && ./$A.out - -// Copyright 2011 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. - -// Check that buffered channels are garbage collected properly. -// An interesting case because they have finalizers and used to -// have self loops that kept them from being collected. -// (Cyclic data with finalizers is never finalized, nor collected.) - -package main - -import ( - "fmt" - "os" - "runtime" -) - -func main() { - const N = 10000 - st := runtime.MemStats - for i := 0; i < N; i++ { - c := make(chan int, 10) - _ = c - if i%100 == 0 { - for j := 0; j < 4; j++ { - runtime.GC() - runtime.Gosched() - runtime.GC() - runtime.Gosched() - } - } - } - - obj := runtime.MemStats.HeapObjects - st.HeapObjects - if obj > N/5 { - fmt.Println("too many objects left:", obj) - os.Exit(1) - } -} |