Understanding goroutines
I'm trying to understand concurrency in Go. In particular, I wrote this thread-unsafe program: package main import "fmt" var x = 1 func inc_x() { //test for { x += 1 } } func main() { go inc_x() for { fmt.Println(x) } } I recognize that I should be using channels to prevent race conditions with x , but that's not the point here. The program prints 1 and then seems to loop forever (without printing anything more). I would expect it to print an infinite list of numbers, possibly skipping some and repeating others due to the race condition (or worse -- printing the number while it is being