var c=make(chan int,1) fmt.Println("Main going to call hello go goroutine") go func(c chan int) { fmt.Println("hello go routine is going to sleep") time.Sleep(4 * time.Second) fmt.Println("hello go routine awake and going to write to done") c<-1 }(c) <-c fmt.Println("Main received data")