]> Cypherpunks repositories - gostls13.git/commitdiff
os/signal: deflake TestReset/TestIgnore
authorIan Lance Taylor <iant@golang.org>
Wed, 1 Jun 2016 16:31:31 +0000 (09:31 -0700)
committerIan Lance Taylor <iant@golang.org>
Wed, 1 Jun 2016 16:47:01 +0000 (16:47 +0000)
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>

src/os/signal/signal_test.go

index 56d786e501558e387d763e742f13f7bbe0a4a455..406102c663b35de0366f601845622d3eefa542e2 100644 (file)
@@ -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)