mirror of
https://github.com/golang/go
synced 2024-11-26 08:58:09 -07:00
cmd/go: fix unbuffered channel passed to signal.Notify
Unbuffered channels passed into signal.Notify can be lost as the docs for signal.Notify caution with: Package signal will not block sending to c: the caller must ensure that c has sufficient buffer space to keep up with the expected signal rate. For a channel used for notification of just one signal value, a buffer of size 1 is sufficient. Found by a static analyzer from Orijtech, Inc. called "sigchanyzer", but it'll be donated to the Go project soon. Updates #9399. Change-Id: Ia0690e447582da028694ed65ace7b97961997b84 Reviewed-on: https://go-review.googlesource.com/c/go/+/274332 Trust: Cuong Manh Le <cuong.manhle.vn@gmail.com> Trust: Emmanuel Odeke <emmanuel@orijtech.com> Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com> Reviewed-by: Bryan C. Mills <bcmills@google.com> Reviewed-by: Emmanuel Odeke <emmanuel@orijtech.com> TryBot-Result: Go Bot <gobot@golang.org>
This commit is contained in:
parent
c32140fa94
commit
10240b9d6b
@ -15,7 +15,7 @@ var Interrupted = make(chan struct{})
|
|||||||
|
|
||||||
// processSignals setups signal handler.
|
// processSignals setups signal handler.
|
||||||
func processSignals() {
|
func processSignals() {
|
||||||
sig := make(chan os.Signal)
|
sig := make(chan os.Signal, 1)
|
||||||
signal.Notify(sig, signalsToIgnore...)
|
signal.Notify(sig, signalsToIgnore...)
|
||||||
go func() {
|
go func() {
|
||||||
<-sig
|
<-sig
|
||||||
|
Loading…
Reference in New Issue
Block a user