Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // One of the threads
- func processCmd() {
- reader := bufio.NewReader(os.Stdin)
- for {
- select {
- case event := <-channel_command:
- switch event.t {
- case 0: //error
- case 1: //shutdown ( from console )
- return
- default:
- }
- default:
- }
- text, err := reader.ReadString('\n')
- if err != nil {
- channel_event <- event{t: 0, err: err}
- }
- fmt.Println("Received: " + text + "\n") // UNQLSS: TODO
- }
- }
- //main thread
- func StartDeamon(port uint16) error {
- var err error
- var running bool
- err = initUdpSocket("", 29060)
- if err != nil {
- log.Printf("Faied to init udp socket: %s", err)
- return err
- }
- go checkTimeout()
- go processUdpPackets()
- go processCmd()
- running = true
- for running {
- select {
- case event := <-channel_event:
- switch event.t {
- case 0: //error
- log.Print(event.err)
- channel_command <- event
- channel_timeout <- event
- channel_udp <- event
- running = false
- case 1: //shutdown ( from console )
- running = false
- channel_command <- event
- channel_timeout <- event
- channel_udp <- event
- }
- default:
- }
- }
- err = shutdownUdpSocket()
- if err != nil {
- log.Printf("Faied to shutdown udp socket: %s", err)
- return err
- }
- return nil
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement