diff options
Diffstat (limited to 'src/pkg/runtime/race/testdata/finalizer_test.go')
-rw-r--r-- | src/pkg/runtime/race/testdata/finalizer_test.go | 67 |
1 files changed, 0 insertions, 67 deletions
diff --git a/src/pkg/runtime/race/testdata/finalizer_test.go b/src/pkg/runtime/race/testdata/finalizer_test.go deleted file mode 100644 index 222cbf67a..000000000 --- a/src/pkg/runtime/race/testdata/finalizer_test.go +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2012 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. - -package race_test - -import ( - "runtime" - "sync" - "testing" - "time" -) - -func TestNoRaceFin(t *testing.T) { - c := make(chan bool) - go func() { - x := new(string) - runtime.SetFinalizer(x, func(x *string) { - *x = "foo" - }) - *x = "bar" - c <- true - }() - <-c - runtime.GC() - time.Sleep(100 * time.Millisecond) -} - -var finVar struct { - sync.Mutex - cnt int -} - -func TestNoRaceFinGlobal(t *testing.T) { - c := make(chan bool) - go func() { - x := new(string) - runtime.SetFinalizer(x, func(x *string) { - finVar.Lock() - finVar.cnt++ - finVar.Unlock() - }) - c <- true - }() - <-c - runtime.GC() - time.Sleep(100 * time.Millisecond) - finVar.Lock() - finVar.cnt++ - finVar.Unlock() -} - -func TestRaceFin(t *testing.T) { - c := make(chan bool) - y := 0 - go func() { - x := new(string) - runtime.SetFinalizer(x, func(x *string) { - y = 42 - }) - c <- true - }() - <-c - runtime.GC() - time.Sleep(100 * time.Millisecond) - y = 66 -} |