On Thu, Sep 7, 2017 at 3:17 AM, Arpit Aggarwal <arpit94.i...@gmail.com> wrote: > > I was going through the Go memory model at https://golang.org/ref/mem > > In the second line,first paragraph of Happens Before Description it is > written that > > * compilers and processors may reorder the reads and writes executed within > a single goroutine only when the reordering does not change the behavior > within that goroutine as defined by the language specification. > > I wanted to ask about what are the rules for read and writes reordering > within a goroutine defined by the language specification. > > Happens before relation define rules on reads and writes on the same > variable only, are there any rules in language specification for reads and > writes on different variables that may be reordered by processor or compiler
See https://golang.org/ref/spec#Order_of_evaluation . Also, as a general rule, reads and writes to local variables that do not escape to the heap may be reordered arbitrarily. However, the language does not define whether a variable escapes to the heap or not, that is purely an issue of implementation. Ian -- 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. For more options, visit https://groups.google.com/d/optout.