github.com/EngineerKamesh/gofullstack@v0.0.0-20180609171605-d41341d7d4ee/volume1/section4/racedemo/racedemo.go (about)

     1  // An example of a data race condition.
     2  // Execute the program like so: "go run -race racedemo.go" to detect the race condition.
     3  package main
     4  
     5  import "fmt"
     6  
     7  var greetings string
     8  var howdyDone chan bool
     9  
    10  func howdyGreetings() {
    11  
    12  	greetings = "Howdy Gopher!"
    13  	howdyDone <- true
    14  }
    15  
    16  func main() {
    17  
    18  	howdyDone = make(chan bool, 1)
    19  	go howdyGreetings()
    20  	greetings = "Hello Gopher!"
    21  	fmt.Println(greetings)
    22  	<-howdyDone
    23  }