On Tue, Sep 21, 2021 at 12:54 PM xie cui <cuiwei...@gmail.com> wrote: > > > https://stackoverflow.com/questions/2599238/are-memory-barriers-necessary-for-atomic-reference-counting-shared-immutable-dat > this answer say that: > On x86, it will turn into a lock prefixed assembly instruction, like LOCK > XADD. > Being a single instruction, it is non-interruptible. As an added "feature", > the lock prefix results in a full memory barrier. > > In my opinion, full memory barrier means flush store buffer and invalid > queue(not very sure, is this right?)
Can you be specific about exactly what you are asking? You originally said "atomic instruction," and my answer was based on the functions sync/atomic.LoadInt32 and sync/atomic.StoreInt32. Here you seem to be talking about sync/atomic.AddInt32, which is fine, but let's agree on what the question is. This is a Go language mailing list, so can you ask your question about a Go function, rather than about an "atomic instruction"? Thanks. Ian > On Saturday, September 18, 2021 at 3:17:26 AM UTC+8 Ian Lance Taylor wrote: >> >> On Fri, Sep 17, 2021 at 6:25 AM xie cui <cuiw...@gmail.com> wrote: >> > >> > how atomic insturction work in golang at x86/amd64, >> > I think the atomic insturtion will flush the store buffer and invalid >> > queue of current cpu core, >> > but I am not sure, does someone know about it? >> >> I assume that you are asking about the sync/atomic package. The >> functions in that package will ensure sequential consistency of atomic >> operationns, but they will not flush the store buffer. See >> https://research.swtch.com/gomm . >> >> 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. > To view this discussion on the web visit > https://groups.google.com/d/msgid/golang-nuts/aa7487d1-13f1-451b-86a3-f7f70a7c040cn%40googlegroups.com. -- 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/CAOyqgcX-12SQkcow1az%2BPhOYfubvmuD0q72yOc_xOo%3Dia2J_SQ%40mail.gmail.com.