]> Cypherpunks.ru repositories - gostls13.git/blobdiff - test/gc2.go
cmd/compile/internal/inline: score call sites exposed by inlines
[gostls13.git] / test / gc2.go
index c5c6cbe4bb6ac417638bc10ed740ece9a54c497e..954a021a144599a43922a34ffc3a6574b2cabf97 100644 (file)
@@ -1,10 +1,12 @@
-// $G $D/$F.go && $L $F.$A && ./$A.out
+// run
 
-// Copyright 2011 The Go Authors.  All rights reserved.
+//go:build !nacl && !js
+
+// 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.
+// Test 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.)
@@ -19,7 +21,9 @@ import (
 
 func main() {
        const N = 10000
-       st := runtime.MemStats
+       st := new(runtime.MemStats)
+       memstats := new(runtime.MemStats)
+       runtime.ReadMemStats(st)
        for i := 0; i < N; i++ {
                c := make(chan int, 10)
                _ = c
@@ -32,8 +36,9 @@ func main() {
                        }
                }
        }
-       
-       obj := runtime.MemStats.HeapObjects - st.HeapObjects
+
+       runtime.ReadMemStats(memstats)
+       obj := int64(memstats.HeapObjects - st.HeapObjects)
        if obj > N/5 {
                fmt.Println("too many objects left:", obj)
                os.Exit(1)