From: Alex Brainman Date: Wed, 28 Nov 2012 06:01:22 +0000 (+1100) Subject: exp/winfsnotify: fix data race in TestNotifyClose X-Git-Tag: go1.1rc2~1758 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=16a5934540864a687ed709b969ea32f1e6e8c238;p=gostls13.git exp/winfsnotify: fix data race in TestNotifyClose Fixes #4342. R=golang-dev, rsc CC=golang-dev https://golang.org/cl/6850080 --- diff --git a/src/pkg/exp/winfsnotify/winfsnotify_test.go b/src/pkg/exp/winfsnotify/winfsnotify_test.go index 4a1929a839..a0bd4327fb 100644 --- a/src/pkg/exp/winfsnotify/winfsnotify_test.go +++ b/src/pkg/exp/winfsnotify/winfsnotify_test.go @@ -9,6 +9,7 @@ package winfsnotify import ( "io/ioutil" "os" + "sync/atomic" "testing" "time" ) @@ -105,14 +106,14 @@ func TestNotifyClose(t *testing.T) { watcher, _ := NewWatcher() watcher.Close() - done := false + var done int32 go func() { watcher.Close() - done = true + atomic.StoreInt32(&done, 1) }() time.Sleep(50 * time.Millisecond) - if !done { + if atomic.LoadInt32(&done) == 0 { t.Fatal("double Close() test failed: second Close() call didn't return") }