On 06/10/2015 09:46 PM, Sebastian wrote: > The reason why I would like to avoid the volatile qualifier: > As soon as I use it once, I must use it in all functions which get a > pointer to the buffer. So I can't reuse these functions for other > arrays. > With other variables, this is not so serious - you can assign the > value of a volatile variable to a temporary variable, or to a > parameter, without trouble. Only with pointers/arrays, this becomes > a problem. I'd use a full memory barrier. __sync_synchronize() or one of the __atomic fences. Even if your processor does not use a relaxed memory model, this guarantees that no memory operations will not be moved across the barrier. Andrew.