Fixes #19851.
Change-Id: I5ee9533406542be7d5418df154f6134139e75892
Reviewed-on: https://go-review.googlesource.com/39890
Run-TryBot: Caleb Spare <cespare@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Russ Cox <rsc@golang.org>
        }()
        x = 43
        <-done
+       t.Log(t.Failed())
 }
 `, `
 ==================
 --- FAIL: TestFail \(0...s\)
+.*main_test.go:13: true
 .*testing.go:.*: race detected during execution of test
 FAIL`},
 
 
 // Failed reports whether the function has failed.
 func (c *common) Failed() bool {
        c.mu.RLock()
-       defer c.mu.RUnlock()
-       return c.failed
+       failed := c.failed
+       c.mu.RUnlock()
+       return failed || c.raceErrors+race.Errors() > 0
 }
 
 // FailNow marks the function as having failed and stops its execution.