Add remaining (sans spawn, testbench)
This commit is contained in:
30
signals/signals.go
Normal file
30
signals/signals.go
Normal file
@@ -0,0 +1,30 @@
|
||||
package signals
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"os/signal"
|
||||
"syscall"
|
||||
)
|
||||
|
||||
func Signals() {
|
||||
// chan MUST be buffered
|
||||
signals := make(chan os.Signal, 1)
|
||||
|
||||
signal.Notify(signals, syscall.SIGINT, syscall.SIGTERM)
|
||||
|
||||
done := make(chan bool, 1)
|
||||
|
||||
go doWork(done, signals)
|
||||
|
||||
fmt.Println("Awaiting signal")
|
||||
<-done
|
||||
fmt.Println("Received done, program exiting")
|
||||
}
|
||||
|
||||
func doWork(done chan<- bool, signals <-chan os.Signal) {
|
||||
sig := <-signals
|
||||
fmt.Println()
|
||||
fmt.Println("Received signal:", sig)
|
||||
done <- true
|
||||
}
|
||||
Reference in New Issue
Block a user