diff options
Diffstat (limited to 'src/pkg/runtime/race/testdata/chan_test.go')
-rw-r--r-- | src/pkg/runtime/race/testdata/chan_test.go | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/src/pkg/runtime/race/testdata/chan_test.go b/src/pkg/runtime/race/testdata/chan_test.go index 2332f097e..614ba4a4e 100644 --- a/src/pkg/runtime/race/testdata/chan_test.go +++ b/src/pkg/runtime/race/testdata/chan_test.go @@ -311,12 +311,35 @@ func TestRaceChanSendClose(t *testing.T) { go func() { defer func() { recover() + compl <- true }() c <- 1 + }() + go func() { + time.Sleep(10 * time.Millisecond) + close(c) compl <- true }() + <-compl + <-compl +} + +func TestRaceChanSendSelectClose(t *testing.T) { + compl := make(chan bool, 2) + c := make(chan int, 1) + c1 := make(chan int) + go func() { + defer func() { + recover() + compl <- true + }() + time.Sleep(10 * time.Millisecond) + select { + case c <- 1: + case <-c1: + } + }() go func() { - time.Sleep(1e7) close(c) compl <- true }() |