Hello, I have read Go1.19(tip) memory model document(https://tip.golang.org/ref/mem) and have following question. (I think my question is valid for the current model(https://go.dev/ref/mem), though.)
Here is my translation of so-called "Message Passing" litmus test to Go program. https://go.dev/play/p/hPn7yrIN4Sf Does this program can panic according to the memory model? I think it can panic according to the model, but I'm not confident because it is subtle problem for me. My reasoning is as follows. First of all, this program has data race. Behavior for data races are documented in the section "Implementation Restrictions for Programs Containing Data Races". According to this section, - read y := y (L18) can observe both y = 1(L13) and y = 0(initialization at L5) - read x := x (L19) can observe both x = 1(L12) and x = 0(initialization at L5) so the result "x == 0 && y == 1" can actually happen, causing this program to panic. Is my reasoning correct? -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/89a233c6-f0b1-4126-8215-c0bb871e0962n%40googlegroups.com.