Hi, Does anyone know how the Go memory model came to be? I don't have technical questions about it. I just would like to know the historical context.
The model is specified in terms of happens-before, due to Lamport. But the following rule, which allows channels to be used as locks, was not part of Lamport's original formulation: "A receive from an unbuffered channel happens before the send on that channel completes. " I'm curious who (if anyone) was involved in including this rule. How did it come to be? I also find it fascinating how the word "completes" seems to make a world of difference. As I read it, removing the word "completes" from the rule above (and from the rule connecting a sender and its corresponding receiver receiver) would lead to a quite different memory model. I'm curious how intentional the "completes" is. Thanks a lot! Daniel -- 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/ea5f6db9-229b-49c0-a970-7a964d60577en%40googlegroups.com.