title: Goroutine execution inside an http handler
body: <p>If I start a goroutine inside an http handler, is it going to complete even after returning the response ? Here is an example code:</p>
  
  <pre><code>package main
  
  import (
      "fmt"
      "net/http"
      "time"
  )
  
  func worker() {
      fmt.Println("worker started")
      time.Sleep(time.Second * 10)
      fmt.Println("worker completed")
  }
  
  func HomeHandler(w http.ResponseWriter, r *http.Request) {
      go worker()
      w.Write([]byte("Hello, World!"))
  }
  
  func main() {
      http.HandleFunc("/home", HomeHandler)
      http.ListenAndServe(":8081", nil)
  }
  </code></pre>
  
  <p>In the above example, is that <code>worker</code> goroutine going to complete in all situations ? Or is there any special case when it is not going to complete?</p>