title: Creating slice byte goroutine hangs
body: <p>I have an upload program that I am working on and I am running into an issue. I have n go routines that handle uploading the parts to a big file. Essentially it will split the file into 100MB chunks and upload them concurrently depending on the amount of concurrent processes you specify in the config.</p>
  
  <p>The issue I'm having is when I create a buffer to read the file and upload the make([]byte, 100000000) hangs... but only if it's in a go routine. (I'm using 100000000 to simplify the upload calculations)</p>
  
  <p>Here is an example.</p>
  
  <p>This works: <a href="https://play.golang.org/p/tkn8JVir9S" rel="nofollow noreferrer">https://play.golang.org/p/tkn8JVir9S</a></p>
  
  <pre><code>package main
  
  import (
      "fmt"
  )
  
  func main() {
      buffer := make([]byte,  100000000)
      fmt.Println(len(buffer))
  }
  </code></pre>
  
  <p>This doesn't: <a href="https://play.golang.org/p/H8626OLpqQ" rel="nofollow noreferrer">https://play.golang.org/p/H8626OLpqQ</a></p>
  
  <pre><code>package
  
   main
  
  import (
      "fmt"
  )
  
  func main() {
      go createBuffer()
      for {
      }
  
  }
  
  func createBuffer() {
      buffer := make([]byte, 100000000)
      fmt.Println(len(buffer))
  }
  </code></pre>
  
  <p>It just hangs... I'm not sure if there is a memory constraint for a go routine? I tried to research and see what I could find but nothing. Any thoughts would be appreciated.</p>
  
  <p>EDIT: Thanks everyone for the feedback. I will say I didn't explain the real issue very well and will try to provide more of a holistic view next time. I ended up using a channel to block to keep my goroutines ready for new files to process. This is for a DR backup uploading to a 3rd party all that requires large files to be split into 100mb chunks. I guess I should have been more clear as to the nature of my program.</p>