GCC Wiki Memory Bared Probe

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: GCC Wiki Memory Bared Probe

by Anonymous » 02 Apr 2025, 05:32

// -Thread 1-
y.store (20, memory_order_relaxed)
x.store (10, memory_order_relaxed)

// -Thread 2-
if (x.load (memory_order_relaxed) == 10)
{
assert (y.load(memory_order_relaxed) == 20) /* assert A */
y.store (10, memory_order_relaxed)
}

// -Thread 3-
if (y.load (memory_order_relaxed) == 10)
assert (x.load(memory_order_relaxed) == 10) /* assert B */
< /code>
Da Threads nicht über das System synchronisiert werden müssen, kann entweder in diesem Beispiel tatsächlich fehlschlagen.

Ich kann herausfinden, warum ein Versäumnis behaupten kann. Aber warum behaupten B auch scheitern können?>

Top