title: Func will not run; increment channel
body: <p>I'm writing a function where I'm trying to increment a channel.  In a much larger program, this is not working and it actually hangs on a line that looks like:</p>
  
  <pre><code>current = &lt;-channel
  </code></pre>
  
  <p>The <code>go func</code>s are running, but the program seems to halt on this line.</p>
  
  <p>I tried to write a smaller SSCCE, but now I'm having a different problem.  Here it is:</p>
  
  <pre><code>package main                                                                    
  
  import (                                                                        
      "fmt"                                                                       
  )                                                                               
  
  func main() {                                                                   
      count := make(chan int)                                                     
  
      go func(count chan int) {                                                   
          current := 0                                                            
          for {                                                                   
              current = &lt;-count                                                   
              current++                                                           
              count &lt;- current                                                    
              fmt.Println(count)                                                  
          }                                                                       
      }(count)                                                                    
  }
  </code></pre>
  
  <p>However, in the above the <code>go func</code> does not actually seem to be called at all.  If I put a <code>fmt.Println</code> statement before <code>for {</code>, it <em>does not</em> print out. If I put <code>fmt.Println</code> statements before or after they <code>go func</code> block, they will both print out.</p>
  
  <ol>
  <li>Why does the self-calling block in the above example not seem to run at all?</li>
  <li>If it were running, why would it block on <code>current = &lt;-count</code>?  How could I properly increment the channel?</li>
  </ol>