for { select { case <-finish: done <- true return default: // read from the socket } }
for { select { case <-finish: done <- true return case msg <- msg_out: // write msg to socket } }
for { select { case <-finish: done <- true return case msg <- msg_out: // write handling case <-pubsub: // handle oob controls default: // read handling } }