Advertisement
Guest User

Untitled

a guest
Aug 30th, 2015
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.53 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4. "fmt"
  5. "os"
  6. "os/signal"
  7. "syscall"
  8. )
  9.  
  10. func main() {
  11. signals := make(chan os.Signal, 10)
  12. signal.Notify(signals, syscall.SIGTERM)
  13.  
  14. quit := make(chan bool)
  15. messages := make(chan string)
  16.  
  17. go func() {
  18. loop:
  19. for {
  20. select {
  21. case sig := <-signals:
  22. fmt.Println("signal: ", sig)
  23. signal.Stop(signals)
  24. quit <- true
  25. break loop
  26. case msg := <-messages:
  27. fmt.Println("message: ", msg)
  28. }
  29. }
  30. }()
  31.  
  32. for i := 1; i < 11; i++ {
  33. messages <- fmt.Sprintf("No.%d", i)
  34. }
  35.  
  36. <-quit
  37. fmt.Println("Finish")
  38. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement