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.

Reply via email to