github.com/lovishpuri/go-40569/src@v0.0.0-20230519171745-f8623e7c56cf/os/signal/example_test.go (about) 1 // Copyright 2013 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. 4 5 package signal_test 6 7 import ( 8 "fmt" 9 "os" 10 "os/signal" 11 ) 12 13 func ExampleNotify() { 14 // Set up channel on which to send signal notifications. 15 // We must use a buffered channel or risk missing the signal 16 // if we're not ready to receive when the signal is sent. 17 c := make(chan os.Signal, 1) 18 signal.Notify(c, os.Interrupt) 19 20 // Block until a signal is received. 21 s := <-c 22 fmt.Println("Got signal:", s) 23 } 24 25 func ExampleNotify_allSignals() { 26 // Set up channel on which to send signal notifications. 27 // We must use a buffered channel or risk missing the signal 28 // if we're not ready to receive when the signal is sent. 29 c := make(chan os.Signal, 1) 30 31 // Passing no signals to Notify means that 32 // all signals will be sent to the channel. 33 signal.Notify(c) 34 35 // Block until any signal is received. 36 s := <-c 37 fmt.Println("Got signal:", s) 38 }