Advertisement
Guest User

Untitled

a guest
Apr 9th, 2020
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 1.24 KB | None | 0 0
  1. // One of the threads
  2. func processCmd() {
  3.     reader := bufio.NewReader(os.Stdin)
  4.     for {
  5.         select {
  6.         case event := <-channel_command:
  7.             switch event.t {
  8.             case 0: //error
  9.             case 1: //shutdown ( from console )
  10.                 return
  11.             default:
  12.             }
  13.         default:
  14.         }
  15.         text, err := reader.ReadString('\n')
  16.         if err != nil {
  17.             channel_event <- event{t: 0, err: err}
  18.         }
  19.         fmt.Println("Received: " + text + "\n") // UNQLSS: TODO
  20.     }
  21. }
  22.  
  23. //main thread
  24. func StartDeamon(port uint16) error {
  25.     var err error
  26.     var running bool
  27.     err = initUdpSocket("", 29060)
  28.     if err != nil {
  29.         log.Printf("Faied to init udp socket: %s", err)
  30.         return err
  31.     }
  32.     go checkTimeout()
  33.     go processUdpPackets()
  34.     go processCmd()
  35.     running = true
  36.     for running {
  37.         select {
  38.         case event := <-channel_event:
  39.             switch event.t {
  40.             case 0: //error
  41.                 log.Print(event.err)
  42.                 channel_command <- event
  43.                 channel_timeout <- event
  44.                 channel_udp <- event
  45.                 running = false
  46.             case 1: //shutdown ( from console )
  47.                 running = false
  48.                 channel_command <- event
  49.                 channel_timeout <- event
  50.                 channel_udp <- event
  51.             }
  52.         default:
  53.         }
  54.     }
  55.     err = shutdownUdpSocket()
  56.     if err != nil {
  57.         log.Printf("Faied to shutdown udp socket: %s", err)
  58.         return err
  59.     }
  60.     return nil
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement