Por que minha goroutine não é executada?

Estou aprendendo o Go e queria experimentar goroutines e canais.

Aqui está o meu código:

package main
import "fmt"
func main(){

messages := make(chan string,3)

messages <- "one"
messages <- "two"
messages <- "three"

go func(m *chan string) {
    fmt.Println("Entering the goroutine...")
    for {
        fmt.Println(<- *m)
    }
}(&messages)

fmt.Println("Done!")
}

E aqui está o resultado:

Done!

Não entendo por que minha goroutine nunca é executada. A mensagem "Digitando a goroutine" não é impressa e eu não tenho nenhuma mensagem de erro.

questionAnswers(2)

yourAnswerToTheQuestion