libgo: update to Go 1.11
[official-gcc.git] / libgo / go / cmd / go / internal / base / signal.go
blob54d11876d07aeeeba70bc2cac70d5f96b14ca8ed
1 // Copyright 2012 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
5 package base
7 import (
8 "os"
9 "os/signal"
10 "sync"
13 // Interrupted is closed when the go command receives an interrupt signal.
14 var Interrupted = make(chan struct{})
16 // processSignals setups signal handler.
17 func processSignals() {
18 sig := make(chan os.Signal)
19 signal.Notify(sig, signalsToIgnore...)
20 go func() {
21 <-sig
22 close(Interrupted)
23 }()
26 var onceProcessSignals sync.Once
28 // StartSigHandlers starts the signal handlers.
29 func StartSigHandlers() {
30 onceProcessSignals.Do(processSignals)