1 comment

[ 0.18 ms ] story [ 11.2 ms ] thread
This MCS variation ("UnfairMCS"), spreads the CAS latency across multiple `node.next`, as opposed to its CLH counterpart which focuses its CAS pressures on a single point of contention on TAIL (in the `AbstractQueuedSynchronizer` case this is needed because each `prev` field needs to be set), fetching a new memory location on failure, helping offset the latency off of main memory, diverging it to all individual trails of `node.next` equally.