+ allein der Umstand daß Cores direkt an einem Cache hängen, genügt, um die Notwendigkeit der Synchronisation aufzuzeigen ... daher ist das Schlüsselwort auch "cache-coherence" +
+ + ++ Producer: +
++ +
++ write payload[...] // ordinary stores +
++ // StoreStore + LoadStore barrier here +
++ store(flag, READY, release) +
++ +
++ +
++ Consumer: +
++ +
++ v = load(flag, acquire) +
++ // LoadLoad + LoadStore barrier here +
++ if (v == READY) +
++ read payload[...] // ordinary loads +
++ else +
++ // walk away — no information gained, positive or negative +
+ + +
+ Ringbuffer:
+
+ buffer[cursor % RING_SIZE] +
+ +