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?)
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.

Reply via email to