Hi Marvin. > Yes, assuming the Go authors agree that atomic operations guarantee > non-concurrency. Can we have someone authoritative weigh in here?
The Memory Model says that "synchronization primitives" are in the sync and sync/atomic packages. It also says that a "synchronization mechanism" establishes relative ordering as observed by another goroutine. In other words, Go's atomics are full memory barriers/fences which guarantee sequential consistency for any number of goroutines. I'm not an authority, but I believe that both Rob and Ian confirm this in https://groups.google.com/forum/#!msg/golang-nuts/7EnEhM3U7B8/nKCZ17yAtZwJ John John Souvestre - New Orleans LA -----Original Message----- From: golang-nuts@googlegroups.com [mailto:golang-nuts@googlegroups.com] On Behalf Of Marvin Renich Sent: 2017 July 10, Mon 12:09 To: golang-nuts Subject: Re: [go-nuts] does Go memory model guarantee this program always prints 1? [Reply-To set; I don't need two copies of replies.] * T L <tapir....@gmail.com> [170710 12:31]: > so this is guaranteed by Go memory model? > > package main > > import "fmt" > import "sync/atomic" > > func main() { > var x, y int32 > go func() { > atomic.AddInt32(&x, 1) > atomic.AddInt32(&y, 1) > }() > > if atomic.LoadInt32(&y) == 1 { > fmt.Println("x =", atomic.LoadInt32(&x)) // always 1 if it is > printed? > } > } Asked and answered in your previous msg. Yes, assuming the Go authors agree that atomic operations guarantee non-concurrency. Can we have someone authoritative weigh in here? ...Marvin -- 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. -- 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.