]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: fix TestLFStackStress
authorRuss Cox <rsc@golang.org>
Fri, 17 Jan 2014 22:42:24 +0000 (17:42 -0500)
committerRuss Cox <rsc@golang.org>
Fri, 17 Jan 2014 22:42:24 +0000 (17:42 -0500)
Fixes #7138.

R=r, bradfitz, dave
CC=dvyukov, golang-codereviews
https://golang.org/cl/53910043

src/pkg/runtime/lfstack_test.go

index 505aae605513ccd5fc7583556f513fb9f479c5ec..e51877704538b6b3ff020937be25943661bd1ba4 100644 (file)
@@ -71,6 +71,8 @@ func TestLFStack(t *testing.T) {
        }
 }
 
+var stress []*MyNode
+
 func TestLFStackStress(t *testing.T) {
        const K = 100
        P := 4 * GOMAXPROCS(-1)
@@ -80,14 +82,15 @@ func TestLFStackStress(t *testing.T) {
        }
        // Create 2 stacks.
        stacks := [2]*uint64{new(uint64), new(uint64)}
-       // Need to keep additional referenfces to nodes, the stack is not all that type-safe.
-       var nodes []*MyNode
+       // Need to keep additional references to nodes,
+       // the lock-free stack is not type-safe.
+       stress = nil
        // Push K elements randomly onto the stacks.
        sum := 0
        for i := 0; i < K; i++ {
                sum += i
                node := &MyNode{data: i}
-               nodes = append(nodes, node)
+               stress = append(stress, node)
                LFStackPush(stacks[i%2], fromMyNode(node))
        }
        c := make(chan bool, P)
@@ -127,4 +130,7 @@ func TestLFStackStress(t *testing.T) {
        if sum2 != sum {
                t.Fatalf("Wrong sum %d/%d", sum2, sum)
        }
+
+       // Let nodes be collected now.
+       stress = nil
 }