title: Why does fmt.Println inside a goroutine not print a line?
body: <p>I have the following code:</p>
  
  <pre><code>package main
  
  import "net"
  import "fmt"
  import "bufio"
  
  func main() {
      conn, _ := net.Dial("tcp", "irc.freenode.net:6667")
  
      reader := bufio.NewReader(conn)
      go func() {
          str, err := reader.ReadString('\n')
          if err != nil {
              // handle it
              fmt.Println(err)
          }
          fmt.Println(str)
      }()
  
  }
  </code></pre>
  
  <p>If I don't have the code that reads from the  buffer in a goroutine, it outputs a message like this, which is what I expect to happen:</p>
  
  <pre><code>:zelazny.freenode.net NOTICE * :*** Looking up your hostname...
  </code></pre>
  
  <p>However, having it inside a goroutine prints nothing.</p>
  
  <p>Can someone explain why that is?</p>