diff options
author | Ondřej Surý <ondrej@sury.org> | 2011-09-13 13:11:55 +0200 |
---|---|---|
committer | Ondřej Surý <ondrej@sury.org> | 2011-09-13 13:11:55 +0200 |
commit | 80f18fc933cf3f3e829c5455a1023d69f7b86e52 (patch) | |
tree | 4b825dc642cb6eb9a060e54bf8d69288fbee4904 /test/gc2.go | |
parent | 28592ee1ea1f5cdffcf85472f9de0285d928cf12 (diff) | |
download | golang-80f18fc933cf3f3e829c5455a1023d69f7b86e52.tar.gz |
Imported Upstream version 60
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) - } -} |