]> Cypherpunks repositories - gostls13.git/commitdiff
os/signal: use a larger channel buffer for all signals in TestSignal
authorIan Lance Taylor <iant@golang.org>
Fri, 8 Nov 2019 23:28:51 +0000 (15:28 -0800)
committerIan Lance Taylor <iant@golang.org>
Sat, 9 Nov 2019 00:36:15 +0000 (00:36 +0000)
Now that the runtime can send preemption signals, it is possible that
a channel that asks for all signals can see both SIGURG and SIGHUP
before reading either, in which case one of the signals will be dropped.
We have to use a larger buffer so that the test see the signal it expects.

Fixes #35466

Change-Id: I36271eae0661c421780c72292a5bcbd443ada987
Reviewed-on: https://go-review.googlesource.com/c/go/+/206257
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
src/os/signal/signal_test.go

index 184068c377d104b9383df6b64f6d9ad02bbab1c3..d9305a4b867dba011c02618295fe0d538384de0f 100644 (file)
@@ -81,8 +81,10 @@ func TestSignal(t *testing.T) {
        syscall.Kill(syscall.Getpid(), syscall.SIGHUP)
        waitSig(t, c, syscall.SIGHUP)
 
-       // Ask for everything we can get.
-       c1 := make(chan os.Signal, 1)
+       // Ask for everything we can get. The buffer size has to be
+       // more than 1, since the runtime might send SIGURG signals.
+       // Using 10 is arbitrary.
+       c1 := make(chan os.Signal, 10)
        Notify(c1)
 
        // Send this process a SIGWINCH