From 98178b345ac7c4fb711e3327b16b1230cdab9d25 Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Fri, 17 Jan 2014 17:42:24 -0500 Subject: [PATCH] runtime: fix TestLFStackStress Fixes #7138. R=r, bradfitz, dave CC=dvyukov, golang-codereviews https://golang.org/cl/53910043 --- src/pkg/runtime/lfstack_test.go | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/pkg/runtime/lfstack_test.go b/src/pkg/runtime/lfstack_test.go index 505aae6055..e518777045 100644 --- a/src/pkg/runtime/lfstack_test.go +++ b/src/pkg/runtime/lfstack_test.go @@ -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 } -- 2.48.1