title: Why is my goroutine not executed?
body: <p>I'm learning Go and I wanted to try goroutines and channels.</p>
  
  <p>Here's my code:</p>
  
  <pre><code>package main
  import "fmt"
  func main(){
  
  messages := make(chan string,3)
  
  messages &lt;- "one"
  messages &lt;- "two"
  messages &lt;- "three"
  
  go func(m *chan string) {
      fmt.Println("Entering the goroutine...")
      for {
          fmt.Println(&lt;- *m)
      }
  }(&amp;messages)
  
  fmt.Println("Done!")
  }
  </code></pre>
  
  <p>And here's the result:</p>
  
  <pre><code>Done!
  </code></pre>
  
  <p>I don't understand why my goroutine is never executed. The "Entering the goroutine" is not printed and I don't have any error message.</p>