On 07 Oct 2013, at 11:33, Marco van de Voort wrote:

In our previous episode, Jonas Maebe said:
[interlocked increment/decrement]
They do not include any memory barrier. The only thing those routines
guarantee on all platforms, is that the value is atomically
incremented/decremented.

(btw that depends on which functions you mean, our own assembler versions
probably.

The Windows
functions of the same name are guaranteed to have memory barriers afaik,
but do require alignment. (probably to avoid crosssing cache lines)
)

That's why I wrote "on all platforms". They also always require a native alignment on all platforms, because those are cpu limitations for atomic instructions.


On 07 Oct 2013, at 11:40, Mark Morgan Lloyd wrote:

Thanks Jonas, noted. For completeness, is there a way to force one?

See http://www.freepascal.org/docs-html/rtl/system/ readwritebarrier.html and the pages linked from there.


Jonas
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to