maneira adequada de aguardar o término de uma rotina
Desejo saber qual é a maneira correta de aguardar o término de uma rotina antes de sair do programa. Lendo algumas outras respostas, parece que um bool chan fará o truque, como emLink para parque infantil
func do_stuff(done chan bool) {
fmt.Println("Doing stuff")
done <- true
}
func main() {
fmt.Println("Main")
done := make(chan bool)
go do_stuff(done)
<-done
//<-done
}
Eu tenho duas perguntas aqui:
por que o <- done funciona?
o que acontece se eu descomentar a última linha? Eu tenho um erro de conflito. Isso ocorre porque o canal está vazio e não há outra função enviando valores para ele?