Just to add to he noise. Quite true not all atomics are built the same but it's how you build them and how you use them can make a big diffrenece. So, let's take x86. A strong atomic store is typically built as: fence(); store(); fence() The fence() is the problematic thing here. It all depends on the architecture. A fence requires that all load and stores be committed before continuing. This usually implies discarding all speculative memory fetches. That can be very expensive on some architectures (and from my understanding even on some x86 variants). Depending on the atomic requirements it may very well be better to simply obtain a lock. Andy On Wed, 15 Jul 2015, Brian Bockelman wrote: > Hi @esindril - > > Just to clear up misconceptions. There is no overhead for the atomic I suggested on platforms besides ARM (and there it is pretty small compared to a lock). > > Not all synchronization primitives are built the same! > > Brian > > --- > Reply to this email directly or view it on GitHub: > https://github.com/xrootd/xrootd/pull/251#issuecomment-121630434 --- Reply to this email directly or view it on GitHub: https://github.com/xrootd/xrootd/pull/251#issuecomment-121680704 ######################################################################## Use REPLY-ALL to reply to list To unsubscribe from the XROOTD-DEV list, click the following link: https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-DEV&A=1