Merge pull request #125 from jstarks/listenpipe

pipe: Fix ListenPipe/DialPipe race
This commit is contained in:
John Howard
2019-04-08 10:36:21 -07:00
committed by GitHub
3 changed files with 185 additions and 87 deletions
+21
View File
@@ -549,3 +549,24 @@ func TestMessageReadMode(t *testing.T) {
t.Fatalf("expected %s: %s", msg, vmsg)
}
}
func TestListenConnectRace(t *testing.T) {
for i := 0; i < 50 && !t.Failed(); i++ {
var wg sync.WaitGroup
wg.Add(1)
go func() {
c, err := DialPipe(testPipeName, nil)
if err == nil {
c.Close()
}
wg.Done()
}()
s, err := ListenPipe(testPipeName, nil)
if err != nil {
t.Error(i, err)
} else {
s.Close()
}
wg.Wait()
}
}