¿Por qué fmt.Println dentro de un goroutine no imprime una línea?
Tengo el siguiente código:
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)
}()
}
Si no tengo el código que se lee del búfer en una goroutine, genera un mensaje como este, que es lo que espero que suceda:
:zelazny.freenode.net NOTICE * :*** Looking up your hostname...
Sin embargo, tenerlo dentro de un goroutine no imprime nada.
¿Alguien puede explicar por qué es eso?