summaryrefslogtreecommitdiff
path: root/test/gc2.go
diff options
context:
space:
mode:
authorOndřej Surý <ondrej@sury.org>2011-09-13 13:11:55 +0200
committerOndřej Surý <ondrej@sury.org>2011-09-13 13:11:55 +0200
commit80f18fc933cf3f3e829c5455a1023d69f7b86e52 (patch)
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904 /test/gc2.go
parent28592ee1ea1f5cdffcf85472f9de0285d928cf12 (diff)
downloadgolang-80f18fc933cf3f3e829c5455a1023d69f7b86e52.tar.gz
Imported Upstream version 60
Diffstat (limited to 'test/gc2.go')
-rw-r--r--test/gc2.go41
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)
- }
-}