Si j'ai une sélection sur deux canaux :
for {
select {
case <-chan1:
// do something
case <-chan2:
// do something else
}
}
Et dans une goroutine séparée, j'écris séquentiellement sur ces canaux :
chan1 <- "blah"
chan2 <- true
Suis-je assuré de voir "faire quelque chose" s'exécuter avant "faire autre chose" ?
Je sais que select choisit aléatoirement s'il a deux canaux non bloqués, mais je pensais que l'écriture sur le premier canal pourrait "interrompre" de manière fiable la goroutine d'écriture si select est déjà en train de bloquer, ce qui impliquerait que select s'exécuterait sur le premier canal non bloqué avant la seconde écriture.