summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@golang.org>2016-06-01 09:31:31 -0700
committerIan Lance Taylor <iant@golang.org>2016-06-01 16:47:01 +0000
commitbc4fdfdbfe6b971fcceaf4d75514a882917df10d (patch)
tree94dce6dd5b30b70d7404127a3efa0875f14b2a55
parent52fe47247217f5126dacc5a8c8e80b85d2fb25c6 (diff)
downloadgo-git-bc4fdfdbfe6b971fcceaf4d75514a882917df10d.tar.gz
os/signal: deflake TestReset/TestIgnore
Fixes #15661. Change-Id: Ic3a8296fc7107f491880900ef52563e52caca1a3 Reviewed-on: https://go-review.googlesource.com/23615 Run-TryBot: Ian Lance Taylor <iant@golang.org> Reviewed-by: David Crawshaw <crawshaw@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-rw-r--r--src/os/signal/signal_test.go13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/os/signal/signal_test.go b/src/os/signal/signal_test.go
index 56d786e501..406102c663 100644
--- a/src/os/signal/signal_test.go
+++ b/src/os/signal/signal_test.go
@@ -139,6 +139,19 @@ func testCancel(t *testing.T, ignore bool) {
Reset(syscall.SIGWINCH, syscall.SIGHUP)
}
+ // At this point we do not expect any further signals on c1.
+ // However, it is just barely possible that the initial SIGWINCH
+ // at the start of this function was delivered after we called
+ // Notify on c1. In that case the waitSig for SIGWINCH may have
+ // picked up that initial SIGWINCH, and the second SIGWINCH may
+ // then have been delivered on the channel. This sequence of events
+ // may have caused issue 15661.
+ // So, read any possible signal from the channel now.
+ select {
+ case <-c1:
+ default:
+ }
+
// Send this process a SIGWINCH. It should be ignored.
syscall.Kill(syscall.Getpid(), syscall.SIGWINCH)